Сегодня немного поразбирался с gaussian random timer, если кому-то интересно, как он работает, то вот к чему я пришел(постарался опустить большую часть математики):
В этом таймере мы можем задать два числа: константную задержку и смещение.
В основе этого рандомизатора лежит метод класса Math nextGaussian()(
https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#nextGaussian--), где среднеквадратическое отклонение равно 1.0.
В gaussian random timer время задержки высчитывается слудующим образом:
(nextGaussian() * смещение) + константная задержка = thinktime
nextGaussian ~ в 66% случаев принимает значение от -среднеквадратическое отклонение(в нашем случае -1.0) до +среднеквадратическое отклонение(+1.0).
В 27% случаев это будет -2.0/+2.0
В 5% -3.0/+3.0
При константной задержке в 500ms и смещении 100 ms в существенном для нас проценте случаев (68.26%) числа будут в диапазоне от 400 до 600 ms (+/- (100 * 1) + 400),
еще в 27.18% случаев диапазон будет от 300 до 700 (+/- (100 * 2) + 400) и вего в 4.28% будет от 200 до 800 (+/- (100 * 3) + 400). Что в сумме нам будет давать ожидаемое нами среднее значение в ~ 500.
В 0.28% значения будут вне пределов этого диапазона(кому интересно, можете посмотреть правило трех сигм).