Cómo Funciona la Generación de Números Aleatorios
La verdadera aleatoriedad es sorprendentemente difícil de lograr en software. Los generadores pseudoaleatorios (PRNG) antiguos, como el generador congruencial lineal, producen secuencias que parecen aleatorias pero están completamente determinadas por una semilla inicial. Conociendo la semilla puedes reproducir cada resultado, lo que es útil para simulaciones reproducibles pero inadecuado cuando importa la imprevisibilidad.
Esta herramienta utiliza la función `crypto.getRandomValues()` de la API Web Crypto, que obtiene entropía del PRNG criptográficamente seguro (CSPRNG) de tu sistema operativo. En Linux y macOS esto corresponde a `/dev/urandom`, respaldado por fuentes de entropía de hardware que incluyen la variación temporal de la CPU y, en chips modernos, una instrucción HRNG dedicada (Intel RDSEED/RDRAND, ARM RNDRRS). El resultado es indistinguible de la aleatoriedad verdadera para todos los propósitos prácticos.
Cada número se genera directamente en tu navegador. Ningún valor se envía a ningún servidor. El rango que especificas es inclusivo en ambos extremos: ingresar 1–6 simula fielmente un dado de seis caras.
Enteros, Decimales y Rangos
El modo entero devuelve un número entero dentro del rango elegido. El algoritmo mapea la salida del CSPRNG al intervalo entero exacto sin sesgo: descarta muestras que caen en la cola de un mapeo modular desigual, garantizando que cada valor del rango sea igualmente probable. Este es el mismo enfoque de muestreo por rechazo usado en la generación de claves criptográficas.
El modo decimal devuelve un número con hasta 10 decimales, abarcando el intervalo semiabierto [min, max). Los decimales son ideales para simulaciones de probabilidad, métodos de Monte Carlo o cualquier escenario que requiera una distribución uniforme continua. Para uso científico, nota que se evita deliberadamente `Math.random()` de JavaScript; `crypto.getRandomValues()` llena un buffer entero de 32 bits que luego se escala al rango deseado.
¿Necesitas varios números a la vez? Puedes generar una lista de N valores con un solo clic. Para valores únicos (muestreo sin reemplazamiento), la herramienta cambia automáticamente a una mezcla de Fisher–Yates sobre el conjunto del rango, garantizando que no haya repeticiones.
Casos de Uso Prácticos
Los juegos y simulaciones son los más obvios: tiradas de dados, robos de cartas, semillas de mapas aleatorios, tablas de botín. Como la salida es criptográficamente robusta, también es adecuada para seleccionar ganadores de sorteos o concursos: ningún participante puede predecir o ingeniería inversa el resultado.
Las estadísticas y la ciencia de datos frecuentemente necesitan muestras aleatorias. Ya sea para seleccionar una muestra aleatoria de una lista numerada, asignar sujetos a grupos de tratamiento y control, o hacer bootstrap de un conjunto de datos, un CSPRNG rápido en el navegador elimina la fricción de arrancar Python o R solo para obtener un índice aleatorio.
La educación también se beneficia: los profesores usan selectores aleatorios para llamar a estudiantes al azar, asignar grupos o generar ejercicios con parámetros aleatorios. Como todo se ejecuta localmente, se preserva la privacidad en el aula: ningún dato de estudiante sale del dispositivo.