In this work, the concept of evolutionary search is utilized as a versatile CFD solver. Specifically, a real-coded genetic algorithm, mimicking the natural evolution process, is used to minimize the residuals resulting from a finite difference discretization. While most gradient-based methods can suffer from divergence or slow convergence, the evolutionary solver''s heuristic nature allows it to avoid solving the resulting systems of equations, thereby precluding many convergence difficulties and avoiding stiffness-related problems. Furthermore, these stochastic optimization techniques work around many stability issues in computational fluid dynamics. A number of new, unitary as well as binary, GA operators are proposed, explained and tested, along with the more traditional crossover and mutation operators. Also, new GA-customized refinement strategy and a GA-window approach are proposed which helps reduce time requirements. The GA is used to successfully solve problems involving a potential flow, a viscous flow via the Navier-Stokes equations, and a power-law non-Newtonian flow. The GA-solver is shown to be able to solve problems that the gradient-based method could not.