A genetic algorithm is a stochastic numerical algorithm used to solve problems where analytic or step-wise computation is impossible or intractable. Genetic algorithms are a popular subset of Evolutionary algorithms which use common concepts in evolutionary biology and principles of the Theory of evolution such as: inheritance, mutation, selection, and recombination.
Solutions to a problem are randomly generated and then allowed to interact in a modeled environment. Various solutions can breed with each other producing new combinations, also at random intervals certain elements of the solution can randomly mutate. The fit of any given solution to the problem is measured and those that are a better fit are selected for. This can either happen by increasing the rate of offspring reproduction in better solutions or by killing off solutions that perform worse.
Schmitt, Lothar M (2001), Theory of Genetic Algorithms, Theoretical Computer Science (259), pp. 1-61