У меня есть простое решение для вас.Вместо rand(1, 50)
(скажем, эта функция генерирует равномерно случайные числа 1..50) используйте это выражение:
power(rand(1, power(50, exp)), 1/exp)
это все равно даст вам все числа 1..50.Для exp = 1
распределение будет равномерным.По мере того, как вы немного увеличиваете exp (например, как 1.1 или около того), вероятность получения больших чисел будет увеличиваться.Чем выше опыт, тем больше он будет увеличиваться до 50.
Таким образом, вы можете сделать, например:
factor = 1 /* finetune this for your needs */
for second = 0..100
exp = 1 + (second / 100) * factor
rand_num = power(rand(1, power(50, exp)), 1/exp)
endfor