Примем за условие:
Игрок 1 - вероятность выигрыша 10
Игрок 2 - вероятность выигрыша 20
В простом случае, нам надо сложить все вероятности выигрыша вместе (то есть 10 + 20 в примере) и потом сгенерировать случайное число в диапазон от 0 до суммы вероятностей (до 30). Далее, от получившегося случайного числа, отнимать вероятности выигрыша по очереди (например, идем сверху вниз), и как только разность станет меньше 0 - вы нашли искомого Игрока (победителя).
Итак, пример:
10 + 20 = 30 // сумма вероятностейRandom(30) = 26.67 // случайное число26.67 - 10 = 16.67 // вычитаем вероятность 1 игрока16.67 - 20 = -3.33 // вычитаем вероятность 2 игрока// Результат стал меньше 0. Значит 2-й игрок - искомый победитель
В английской среде алгоритм имеет название (и часто используется в генетических алгоритмах). Такое название дано в связи с тем, что можно представить все вероятности как сектора рулеточного колеса (на рисунке они приведены к процентам от суммы), и случайным образом выбирать положение на колесе, определяя тем самым ""выигравший"" сектор.