Весь смысл генетических алгоритмов именно в том, что мутации случайны, а не контролируются программистом по каким-то аспектам. Выборка происходит не перед мутацией (с выбором того, что следует изменить), а уже в мутировавшем поколении. Весь смысл в том, что непредсказуемое решение может оказаться более эффективным, чем предсказуемое.
Это как если программист подумает, что для увеличения скорости передвижения нужно наращивать число ног и через N поколений получит 100500 ножку, а случайные мутации "научат" тараканчика сворачивать тело в колесо (это я типа сравнил многоножку с какой-нибудь макрицей).
Т.е. происходят случайные мутации и алгоритм оценивает, привели ли они к какому-то улучшению по заданным признакам. В примере с огородом, можно ожидать рождение ребёнка с конечностями в форме лопат, который будет очень быстро пахать огород, но не один вменяемый программист не будет специально программировать такое создание.