Aleatoriedade sobre Math.random ()

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);