Genetic algorithms are design tools used in generating optimal solutions. While they can often be shown to outperform various heuristic methods and hybrid approaches, using a combination of evolutionary algorithms and heuristic approaches can generate an optimal solution more quickly than either of the two methods independently. Our purpose is to provide an overview of genetic algorithms, to discuss the types of problems that lend themselves to being solved by genetic algorithms, and to identify heuristics that have been shown to aid genetic algorithms in their quest for optimal solutions. While the sample problems discussed in this paper are generally of textbook variety, genetic algorithms can be applied to problems of interest to systems...