Generador de números aleatorios
Opciones
Salida
Detalles técnicos
Cómo funciona el generador de números aleatorios
Qué hace la herramienta
El generador de números aleatorios produce enteros aleatorios criptográficamente robustos o números de punto flotante usando la Web Crypto API (crypto.getRandomValues). Emplea muestreo por rechazo para eliminar el sesgo de módulo, garantizando una distribución uniforme en cualquier rango especificado. Puedes generar valores individuales o lotes de números aleatorios con ajustes configurables de mínimo, máximo y precisión.
Casos de uso comunes para desarrolladores
Los desarrolladores usan generadores de números aleatorios criptográficos para tareas sensibles a la seguridad, como generar tokens de sesión imposibles de adivinar, nonces, selecciones de lotería o muestreo aleatorio de conjuntos de datos. Los desarrolladores de juegos lo usan para tiradas de dados y generación procedural cuando la equidad importa. Los ingenieros de QA generan entradas de prueba aleatorias para fuzz testing, y los científicos de datos lo usan para muestreo aleatorio cuando no se requiere reproducibilidad.
Formatos de datos, tipos o variantes
La herramienta admite la generación de enteros dentro de un rango arbitrario (límites inclusivos) y la generación de números de punto flotante con precisión decimal configurable. El muestreo por rechazo descarta valores que causarían sesgo de módulo cuando el rango no divide de manera uniforme el espacio de salida de la fuente aleatoria. La entropía subyacente proviene del CSPRNG del sistema operativo (CryptGenRandom en Windows, /dev/urandom en Unix) expuesto a través de la Web Crypto API del navegador.
Errores comunes y casos límite
La aleatoriedad criptográfica es más lenta que Math.random() e innecesaria para usos no relacionados con la seguridad, como mezclar una lista de reproducción. El muestreo por rechazo puede, en teoría, iterar muchas veces para rangos patológicos, aunque en la práctica esto es despreciable. Los números aleatorios generados en el navegador no pueden inicializarse con una semilla para reproducibilidad; si necesitas secuencias deterministas para pruebas, usa un PRNG con semilla en su lugar. El rango máximo de enteros seguros está limitado por Number.MAX_SAFE_INTEGER de JavaScript (2^53 - 1).
Cuándo usar esta herramienta vs código
Usa la herramienta del navegador cuando necesites un número aleatorio imparcial rápidamente para una decisión puntual, pruebas manuales o verificar que tu propia implementación produce valores dentro de los rangos esperados. Para uso en producción, llama a crypto.getRandomValues() directamente en tu código o usa funciones CSPRNG nativas del lenguaje (módulo secrets en Python, SecureRandom en Java) que se integren con el manejo de errores y el registro de tu aplicación.