1. Importancia de los Números Aleatorios y el CSPRNG
Los números aleatorios son valores impredecibles esenciales para el cifrado, la seguridad, los juegos y la simulación. Los generadores aleatorios estándar producen números pseudoaleatorios generados mediante algoritmos, lo que los hace predecibles si se conoce el valor semilla. Para aplicaciones críticas en materia de seguridad, se debe usar CSPRNG (Cryptographically Secure Pseudo-Random Number Generator). Las funciones random_bytes() y random_int() de PHP son CSPRNG que utilizan /dev/urandom o CryptGenRandom. JavaScript proporciona crypto.getRandomValues(), que aprovecha las fuentes de entropía del navegador. El Math.random() estándar no es apto para la seguridad y nunca debe usarse para tokens, identificadores de sesión o claves de cifrado.