Un Pseudo-Random Number Generator (PRNG) es un algoritmo computacional que genera una secuencia de números que, aunque parecen aleatorios, son en realidad el resultado de un proceso matemático determinista. A diferencia de los True Random Number Generators (TRNGs) que se basan en fenómenos físicos impredecibles (como el ruido térmico o la desintegración radioactiva), un PRNG parte de un valor inicial llamado 'semilla' (seed). Con la misma semilla, un PRNG siempre producirá la misma secuencia de números, lo que los hace 'pseudo-aleatorios' pero reproducibles. La calidad de un PRNG se mide por su periodo (cuántos números genera antes de repetir la secuencia), su distribución estadística y su impredecibilidad sin conocer la semilla.

Los PRNGs son omnipresentes en sistemas informáticos. En simulación y modelado, se utilizan para generar escenarios aleatorios en simulaciones Monte Carlo, como la predicción del clima o el comportamiento de mercados financieros. En videojuegos, controlan la aparición de ítems, el comportamiento de enemigos o la generación de mundos procedurales. En criptografía, aunque no son adecuados para la generación directa de claves secretas (para eso se usan Cryptographically Secure PRNGs o CSPRNGs), se emplean en protocolos como TLS/SSL para generar nonces o claves de sesión efímeras. Ejemplos comunes de PRNGs incluyen el Mersenne Twister (ampliamente usado en lenguajes como Python y R) y el Linear Congruential Generator (LCG), una implementación más simple pero con limitaciones de calidad.

Para un arquitecto de sistemas, comprender los PRNGs es crucial para tomar decisiones informadas sobre seguridad, rendimiento y reproducibilidad. La elección de un PRNG impacta directamente la robustez de un sistema; por ejemplo, usar un PRNG no criptográficamente seguro en un contexto de seguridad puede llevar a vulnerabilidades graves. La reproducibilidad de los PRNGs es una ventaja en entornos de testing y depuración, permitiendo recrear exactamente un escenario problemático. Sin embargo, esto también implica que la gestión de la semilla es crítica: una semilla predecible o débil puede comprometer la aleatoriedad efectiva. Los arquitectos deben evaluar los trade-offs entre la velocidad de generación, la calidad estadística de la aleatoriedad y los requisitos de seguridad para seleccionar el algoritmo PRNG o CSPRNG adecuado para cada caso de uso específico.