Вам нужно идти в сторону сидирования. Это псевдослучайное число.
var random = new Random(5632732);
console.log(random.number(0, 10)) //> 3.280606995884774
console.log(random.number(0, 10)) //> 3.679312414266118
console.log(random.boolean(50)) //> true
console.log(random.boolean(50)) //> true
function Random(seed) {
this.seed = seed;
}
Random.prototype.number = function(min, max) {
this.seed++;
return min + (((this.seed * 9301 + 49297) % 233280) / 233280) * (max - min);
};
Random.prototype.boolean = function(rate) {
this.seed++;
return Math.sin(this.seed) <= rate / 100;
};