El tema es bastante mas complejo de lo que parece a simple vista. Porque si solo tienes 100 números, te sirve cualquier solución, pero si tienes varios miles de millones no hay server que se banque verificar tanta cantidad de forma constante y menos aun levantarlos a memoria en un array.
Hace unos días tuve
el mismo problema y allí publique la solución.
Si bien me sugirieron varias alternativas como la de @dashtrash o la de @darioPHP ninguna es viable.
En mi caso necesitaba una combinación de 15 números aleatorios del 0 al 99 que no estuviera previamente generada. Notese en mi solucion que el 15 va como parámetro, así que si necesitas menos cantidad, solo tienes que cambiar ese parámetro.
La primer solucion que planteo en ese tema no necesita mas que un campo autoincremental en la base de datos para funcionar, la segunda que esta mejorada, requiere un par de detalles adicionales.
Saludos!