Eu estava pensando em colisão ao usar Math.random () hoje cedo, e foi interessante fazer um experimento sobre quanto tempo leva para que Math.random () em JavaScript comece a mostrar padrões repetidos anteriormente.
Acontece que vai até cerca de 63% das vezes sem repetição quando executado por 1 minuto.
O jsfiddle de trabalho está aqui.
var generateRandom = function(){
var num = Math.floor((Math.random())*1000000);
return num;
};
var checkCollision = function(){
storage = [];
for(var i=0; i<1000000; i++){
var num = generateRandom();
storage.push(num);
};
};
checkCollision();
//check for all numbers
console.log(storage.length);
// check for unique numbers
console.log(_.uniq(storage).length);