Los generadores de números aleatorios (RNG) realmente están generando números pseudoaleatorios, ya que es imposible generar realmente un número aleatorio REAL. Las únicas cosas realmente verdaderamente aleatorias son los actos de Dios, como los rayos.
Este artículo de Wikipedia podría ayudarlo en la explicación: http://en.wikipedia.org/wiki/Random_number_generators
Por lo que entiendo, básicamente hay dos partes de un RNG: la semilla, y luego el número aleatorio elegido de esa semilla. Cuando siembras el RNG, le estás dando un equivalente a un punto de partida. Ese punto de partida tiene un montón de números que están "dentro" de los cuales el programa elige. En PHP, puede usar srand () para "mezclar" las semillas, por lo que casi siempre obtiene una respuesta diferente. Luego puede usar rand (min, max) para ir a la semilla y elegir un número entre min y max, inclusive.
¡ADVERTENCIA, POSIBLE ANÁLISIS DE QUESOS A CONTINUACIÓN!
Piense en cada 'semilla' como un cofre de hielo, y luego los números aleatorios como cubitos de hielo. Digamos que tienes 1000 cofres de hielo y cada cofre tiene 1000 cubitos de hielo adentro. En la feria del condado, elegirán una caja de hielo para comenzar a usar para bebidas, y solo pueden usar un cubo de hielo. Sin embargo, solo necesitan cubitos de hielo de más de 1 pulgada cúbica. Entonces elegirán un cofre al azar entre esos 1000 cofres, y luego elegirán un cubo de hielo dentro de ese cofre al azar. Si funciona para el tamaño que desean, lo usan. Si no es así, lo vuelven a colocar en el cofre con los demás. Si quieren que sea un poco más divertido, cambian los cofres de antemano por olvido total, ¡si quieres!
En cuanto a cómo PHP realmente elige físicamente la semilla y el número aleatorio, no tengo suficiente conocimiento para eso (¡eso es probablemente lo que más te preguntabas!). No intentaría rehacer la función rand (); para la mayoría de las aplicaciones basadas en web que creará, rand () debería ser suficiente para cualquier número aleatorio que necesite.
También consulte los generadores congruentes lineales, esto podría ser más de lo que está buscando si desea los detalles sucios: http://en.wikipedia.org/wiki/Linear_congruential_generator
¡Espero que esto ayude!