Te hago una advertencia conveniente: Por cuestiones matemáticas algo largas de explicar, el tiempo de búsqueda de los números aleatorios irá creciendo en forma exponencial, por podría darse que en algún instante el sistema se ralentice hasta niveles muy elevados.
El uso de ese tipo de rutinas puede parecer ideal en el papel, pero cuando las implementas suelen causar efectos bastante llamativos.
Ver Wiki
Generador de Números Aleatorios
El principio de lo que te describo es simple: A medida que vayas almacenando los números, la "ventana" de números aleatorios útiles se reduce, pero como el sistema puede seguir devolviendo números dentro del rango ya usado, el tiempo de búsqueda se va extendiendo.
En este sentido, los números aleatorios iniciales se obtienen rápido, pero a partir de cierto punto la búsqueda puede dispararse ...al infinito.