Это действительно зависит от того, какой дистрибутив вы хотите использовать, все, что вы указали, было средним. Я бы, как вы сказали, ожидал, что дистрибутив Пуассона удовлетворит ваши потребности, но вы также добавили в заголовок «равномерную случайную переменную», которая является другим дистрибутивом, в любом случае давайте просто перейдем к первому.
Таким образом, если вы хотите получить распределение Пуассона, вы можете легко сгенерировать выборки, используя функцию кумулятивной плотности. Просто следуйте псевдокоду здесь: Генерация пуассоновских RVs , с 5 секундами, являющимися вашим значением для лямбды. Давайте назовем эту функцию Poisson_RN ().
Алгоритм на данный момент довольно прост.
global float next_time = current_time()
boolean function foo()
if (next_time < current_time())
next_time = current_time() + Poisson_RN();
return true;
return false;