0. Книжка не про теорвер, и теорвер изложен в ней крайне странно. Возможно, специально генетически-программистские разделы поданы лучше, но я бы не был уверен.
(Оффтоп)
Если в купленной бутылке водки этикетка криво прилеплена силикатным клеем, на поверхности радужные разводы, а на дне остриженный ноготь - это может быть палёная водка. Пить её следует с крайней осторожностью!
1. В генетическом программировании вероятность используется. Случайным образом выбираются "гены" для скрещивания и/или мутирования, причём вероятность выбора каждого зависит от успешности "организма" с данным геном. Процедуру Вы, кажется, поняли и реализовали. Генерируется случайное число и смотрим, в какой "сектор", соответствующий определённому гену, попали. Его и выбираем для дальнейшего скрещивания и испытания. Но я бы не подкручивал вероятности, чтобы сумма ожидаемых исходов с учётом округления до целого равнялась бы заданному, а просто проводил бы испытания с заданными вероятностями, пока не наберётся желаемое число.
2. Потом проводится новая серия испытаний (с "гибридами" или "мутантами", в первом случае мы случайно выбираем пару объектов и порождаем новый, с параметрами, равными "родительским", а если у "родителей" не равны - выбирая один из них случайно; во втором случае берём существующий объект и случайным образом меняем его "гены"). Число объектов возрастает, для них вычисляем оптимизируемую характеристику (что в примере попросту записывается набор генов, как двоичное число, и затем возводится в квадрат - это условный и, на мой взгляд, крайне неудачный пример, но в реальных задачах, где востребовано генетическое программирование, оптимизируемая функция - сложная нелинейная, иногда и отягощённая случайностью, например, как выход имитационной модели).
3. Затем приходит дедушка Дарвин и убивает неприспособленных, а выжившие вновь размножаются, с мутированием и скрещиванием меж собой, пока не получится Венец Эволюции.