A genetic algorithm is used to find a solution to a problem. First, you have to have a representation of a solution which can be measured in terms of how good it is.I.E. you need a function from the space of all solutions to a vector space of reals (usually a single real, but not always).
Then there are several additional functions. One is able to create a "random" solution. Another can make modifications to a single solution (mutate) producing a new solution. Another can take two or more solutions and combined then in some fashion (mate them) to produce a new solution. The actual generic algorithm then starts by creating a bunch of random solutions (the population). The size of the initial population is a parameter. Then each of the three processes above are selected according to the design of the specific genetic algorithm. YOu can vary the propability of selecting one of the three methods. You can vary the probability distribution. Likewise for selecting a member of the population. You can either create a new population at each psss or you can use a continuous implementation when each new member is added to the population. Then you also criteria of when to make an existing member die (be removed from the pouplation to prevent it from increasing without bound).
If you only have random generation of new members then you have a random search. If you only have mutation then you essentially have simulatid annealing (if the size of the muation can be controlled and is gradually reduced). If you include mating then you have a genetic algorithm. You cah have hundreds of varriations, but they all work. Some work better for some problems and others work better for other problems. That is where the design of the algorithm is important. Equally important, if not more so, is the the design of the representation of the solution. There are many references out there, but most only discuss very limited versions of genetic algorithms based on the very first algorithms. Much more flexability is possible.