Достал из своего старого плагина функцию фейковой рандомизации с сидированием. Если интересно погуглите random seeding.
/**
* Рандомизация с сидированием
* @param {number} seed - сид значение
* @return {number/boolean} - случайное значение из переданного сид значения
**/
function Random(seed) {
this.number = function(min, max, fixed) {
if (!fixed) fixed = 'floor';
max = max || 1;
min = min || 0;
seed = (seed * 9301 + 49297) % 233280;
var rnd = seed / 233280;
switch(fixed.toLowerCase()) {
case 'floor': {
return Math.floor(min + rnd * (max - min));
}
case 'float': {
return min + rnd * (max - min);
}
}
},
this.boolean = function(rate) {
if (!rate) rate = 50;
seed++;
return Math.sin(seed) <= rate / 100;
}
}
Как использовать
var rand = new Random(62086296325); //> seed
rand.number(1, 5, 'floor'); //> 2 (у всех пользователей)