It should be noted that Genetic Algorithms (GAs) are not used for finding the
optimal solution (if such a thing exists in your problem), but rather a solution that is
good enough. Also, a GA is almost always beaten by problem-specific
algorithms; if you know something about your problem that you can
exploit, you are very often better off constructing an
application-specific way of solving it.
So why use a GA? Because GAs are versatile and simple. Simple enough for a GA to be tried in quite short time. Versatile enough to be applied to nearly any problem, as long as you can quantify how good a suggested solution to the problem is. Therefore, GAs excel when you have a complex problem you don't know how to solve, but you know how a good solution would look. NP complete problems are typically those kind of problems, and indeed a field where GAs are very useful.