При чём здесь ровный процент или нет? Сделать ровно так как я написал. Во входящих указываем допустимый шанс выполнения действия в процентах. Допустим 59. В шаблоне генерим.число в диапазоне от 0 до 101. Далее сравниваем два числа. Конкретно в нашем примере если это число больше 59, то действие не выполняется, если меньше - выполняется. Вот и получается совершенно точное указанный в процентах шанс на выполнение. Возможно я не совсем правильно понял, но вроде как именно шанс таким образом и будет рассчитан.