Выберите случайное число от 1 до 100 включительно. Назначьте каждому событию уникальный набор целых чисел, который представляет частоту, с которой оно должно происходить. Если вы случайно сгенерировали число, попадающее в этот конкретный выбранный диапазон чисел, запустите соответствующее событие.
В приведенном выше примере событие, которое должно показывать 10% времени, вы бы присвоили ему диапазон целых чисел длиной 10 целых (1-10, 12-21 и т. Д.). Как вы храните эти целые диапазоны, зависит от вас.
Как сказал Майкл, поскольку это случайные числа, невозможно гарантировать, что указанное событие происходит ровно в 10% случаев, но в долгосрочной перспективе оно должно ... при равномерном распределении случайных чисел.