Skip to main content
🟢 Beginner

Generador de números aleatorios

Generar números aleatorios dentro de un rango. Perfecto para juegos, decisiones y estadísticas. Pruebe esta calculadora matemática en línea gratuita para obtener resultados instantáneos y precisos.

¿Qué es un generador de números aleatorios?

A Generador de números aleatorios (RNG)es una herramienta o algoritmo que produce números sin ningún patrón discernible <unk> cada salida es estadísticamente independiente de las salidas anteriores, con cada valor en el rango con la misma probabilidad de aparecer. Los números aleatorios son fundamentales para las estadísticas, los juegos, la criptografía, la simulación científica y la programación informática.

La verdadera aleatoriedad proviene de fenómenos físicos que son inherentemente impredecibles: desintegración radiactiva, ruido atmosférico, ruido térmico en circuitos electrónicos o eventos de túnel cuántico.

Los números aleatorios generados por computadora son técnicamenteSeudo-aleatorio<unk> son secuencias deterministas que parecen aleatorias pero están completamente determinadas por un valor inicial llamadolas semillasDado la misma semilla, un generador de números pseudoaleatorios (PRNG) produce exactamente la misma secuencia. Esto es realmente útil para la reproducibilidad en simulaciones científicas: establecer la semilla, registrarla, y puede reproducir sus resultados más tarde.

Cómo funcionan los generadores de números pseudoaleatorios

Los PRNG modernos utilizan algoritmos matemáticos para generar secuencias con excelentes propiedades estadísticas.Tormenta de Mersenne(MT19937), desarrollado por Matsumoto y Nishimura en 1997. Tiene un período de 2^19937 − 1 (un número con casi 6,000 dígitos) antes de repetirse, pasa todas las pruebas estadísticas estándar para la aleatoriedad, y es el RNG predeterminado en Python, PHP, Ruby, R y muchos otros lenguajes.

Los algoritmos más nuevos incluyenEn el caso de los vehículos de transporte público, se utilizarán los siguientes indicadores:(estado pequeño, extremadamente rápido) yLas demás máquinas y aparatos eléctricos, incluidas las máquinas y aparatos eléctricosPara aplicaciones criptográficas, estos PRNG estándar son insuficientes <unk> Se requieren PRNG criptográficamente seguros (CSPRNG) porque los PRNG estándar se pueden predecir si un atacante conoce suficientes salidas.

Los navegadores web proporcionan acceso a un CSPRNG a través delcrypto.getRandomValues()API, que esta calculadora utiliza para generar números aleatorios.Math.random(), que utiliza un PRNG simple y nunca debe utilizarse para aplicaciones sensibles a la seguridad.

AlgoritmoPeríodoVelocidad¿Criptográfico?Utilizado en
Matemáticas. al azarDependiente de la aplicaciónMuy rápidoNoNavegador JS (no criptográfico)
Tormenta de Mersenne2^19937 menos 1¡ Qué rápido !NoPython, R y MATLAB
En el caso de los productos de la subcategoría A:2^256 menos 1Muy rápidoNoRust, .NET y Julia
En el caso del PCG-642 elevado a 128¡ Qué rápido !NoNumPy, muchos idiomas
El ChaCha20¡ Qué rápido !Sí , es cierto .Linux /dev/urandom, TLS
Qué suerte.Mediano y medioSí , es cierto .MacOS, iOS y Windows

Uso común de los números aleatorios

Juegos y entretenimiento:La experiencia completa de los juegos roguelike (Nethack, Spelunky, Hades) depende de la aleatoriedad de alta calidad que se siente justa pero impredecible.

Loterías y sorteos:Selección aleatoria para premios, regalos, selección de jurados, selecciones de draft y cualquier asignación justa de un recurso limitado entre los competidores.

Simulación científica (métodos de Montecarlo):Los números aleatorios impulsan las simulaciones de Monte Carlo, que utilizan muestreo aleatorio repetido para aproximar resultados matemáticos complejos. Las aplicaciones incluyen la estimación de π, la fijación de precios de derivados financieros, el modelado de reacciones nucleares, el pronóstico del clima y los estudios de interacción de medicamentos.

Estadísticas y investigación:El muestreo aleatorio para encuestas, la asignación aleatoria en ensayos clínicos (ensayos controlados aleatorios), la generación de muestras de arranque para intervalos de confianza y la validación cruzada en el aprendizaje automático requieren números aleatorios.

Criptografía y seguridad:La generación de claves para el cifrado, la generación de tokens de sesión, los desafíos CAPTCHA, las contraseñas de una sola vez (OTP / 2FA), los valores de sal para el hashing de contraseñas y los nonces en los protocolos criptográficos requieren una aleatoriedad de alta calidad. La aleatoriedad débil en las aplicaciones criptográficas puede ser catastrófica <unk> ha llevado a violaciones de seguridad en el mundo real.

Programación de ordenadores:Generación de datos de prueba, prueba de carga, difusión (encuentro de errores al alimentar entradas aleatorias al software), asignación de pruebas A / B, algoritmos de mezcla (como la función de "mezcla" de Spotify) y pruebas de simulación.

Equidad y expectativas estadísticas

Un generador de números aleatorios imparcial da a cada valor en el rango una probabilidad igual. Para un rango de 1<unk>6 (como un dado), cada número debe aparecer aproximadamente 1/6 ≈ 16.67% del tiempo en muchas tiradas. Pero en tiradas cortas, las desviaciones son normales y esperadas <unk> esto es lo que la probabilidad realmente nos dice.

ElLey de los grandes númerosDice que a medida que aumenta el número de ensayos, las frecuencias observadas convergen a las probabilidades teóricas. Lanzar un dado 12 veces y puede ver {1,3,5,6,2,1,4,3,2,6,5,4} <unk> no exactamente 2 de cada número. Lanzarlo 60,000 veces y verá muy cerca de 10,000 de cada número. Esta convergencia está garantizada por la ley, pero los patrones de corto plazo no lo son.

ElLa falacia del jugadores la creencia errónea de que los resultados pasados influyen en los futuros en eventos aleatorios independientes. Obtener 5 caras en una fila no hace que las colas sean "debidas". Cada lanzamiento es independiente; la moneda no tiene memoria. Del mismo modo, un generador de números aleatorios que acaba de producir 7 no es menos probable que produzca 7 nuevamente en la próxima llamada.

Rango de alcanceProbabilidad por valorFrecuencia esperada (por cada 1000)Caso de uso típico
1 <unk> 2El 50%500 y másSimulación de lanzamiento de monedas
1 <unk> 6El 16,67%No 167Simulación del rodillo de la matriz
1 <unk> 10El 10%100 y 100Selección del decil
1 <unk> 52El 1,92%19Cuadrilla de cartas
1 <unk> 1001%10Percentil/uso general
1 <unk> 1.000.000 de personasEl 0,0001%El 0,001Simulación de billetes de lotería

Generación de números aleatorios en la ciencia: Métodos de Monte Carlo

Los métodos de Monte Carlo utilizan muestreo aleatorio para resolver problemas que son analíticamente difíciles o imposibles. Nombrados así por el casino de Mónaco (por razones obvias), estos métodos transforman problemas determinísticos difíciles en problemas probabilísticos que se pueden resolver mediante simulación.

Estimación de π:Generar aleatoriamente puntos en un cuadrado unitario (x,y cada uniforme en [0,1]). Cuente cuántos caen dentro del círculo unitario (x2 + y2 ≤ 1). La relación es π/4. Con 1 millón de puntos aleatorios, puede estimar π a aproximadamente 3<unk>4 decimales. Esta no es una forma eficiente de calcular π, pero demuestra bellamente el poder de la aleatoriedad.

Modelado financiero:El precio de las opciones de Black-Scholes y los cálculos de Value at Risk simulan miles de posibles trayectorias de precios futuros utilizando números aleatorios. Cada trayectoria de simulación representa un futuro posible. La distribución de los resultados en millones de simulaciones da la distribución de probabilidad de los rendimientos de la cartera.

Desarrollo de drogas:Las simulaciones de Monte Carlo modelan las interacciones de moléculas de fármacos, prediciendo la probabilidad de que un fármaco candidato se una a una proteína objetivo. Esto reduce el número de experimentos de laboratorio necesarios, ahorrando miles de millones de dólares en desarrollo farmacéutico.

Generación de números aleatorios únicos (sin sustitución)

A veces necesitas números aleatorios que no se repitan <unk> por ejemplo, barajar una baraja de cartas, asignar participantes a grupos, o seleccionar ganadores de la lotería.muestreo sin sustitución(a diferencia del muestreo con sustitución, en el que el mismo valor puede aparecer varias veces).

El algoritmo estándar para esto es elMezcla de Fisher y YatesPara una matriz de n elementos: comienza desde el último elemento, intercambia con un elemento elegido al azar de toda la matriz (incluyendo a sí mismo), luego muévete al penúltimo elemento, intercambia con un elemento aleatorio de los restantes y continúa. El resultado es una permutación uniformemente aleatoria en O (n) tiempo.

Para generar k números aleatorios únicos de un rango [min, max]: cree una matriz de todos los valores en el rango, aplique Fisher-Yates, tome los primeros k elementos. Esto asegura que cada combinación de k valores sea igualmente probable <unk> una muestra verdaderamente uniforme sin reemplazo.

Los números aleatorios en la toma de decisiones cotidianas

Los generadores de números aleatorios son sorprendentemente útiles para las decisiones prácticas diarias:

Rompiendo lazos:Cuando existen dos opciones igualmente buenas, un número aleatorio puede tomar la decisión sin pensar demasiado. La investigación sugiere que cuando las personas deliberan demasiado tiempo sobre opciones verdaderamente equivalentes, introducen sesgos que los hacen menos felices con el resultado que si hubieran elegido al azar.

Programación y planificación:Los horarios de rotación aleatoria aseguran la equidad a lo largo del tiempo. ¿Quién elige primero en un borrador de fantasía, quién obtiene el turno preferido, qué tema se discute primero en una reunión? La asignación aleatoria elimina el favoritismo y las percepciones de injusticia.

Aprendizaje y práctica:Los estudiantes que usan tarjetas flash se benefician de la ordenación aleatoria <unk> impide el aprendizaje de "pistas de contexto" (saber la respuesta a la tarjeta 15 porque acabas de responder a la tarjeta 14).

Inspiración creativa:Los escritores, artistas y músicos utilizan generadores de palabras aleatorias, generadores de comandos y herramientas de restricción aleatoria para superar los bloqueos creativos. Las restricciones impuestas al azar a menudo obligan a soluciones creativas inesperadas e interesantes.

Preguntas frecuentes

¿Este generador es realmente aleatorio?

Se utiliza de su navegadorcrypto.getRandomValues()API, que es un generador de números pseudoaleatorios criptográficamente seguro (CSPRNG). Para juegos, decisiones, estadísticas y rifas, esto es indistinguible de la verdadera aleatoriedad. Para la verdadera aleatoriedad absoluta (de fenómenos físicos), use RNG de hardware o servicios como random.org.

¿Puedo generar números aleatorios sin repeticiones?

Sí <unk> esto se llama muestreo sin reemplazo. La calculadora utiliza el algoritmo de mezcla de Fisher-Yates: genera todos los valores en el rango, los mezcla al azar, devuelve la primera N. Esto garantiza que cada valor aparece como máximo una vez y cada combinación es igualmente probable.

¿Cuál es la probabilidad de obtener el mismo número dos veces?

Con la sustitución (modo estándar), para un rango de N valores, la probabilidad de obtener el mismo valor en dos sorteos consecutivos es 1/N. Para el rango 1<unk>100: 1% por par. Durante muchos sorteos, las repeticiones son esperadas y normales. Con el modo "sin repeticiones", las duplicaciones consecutivas son imposibles por diseño.

¿Puedo usar esto para los números de la lotería?

Absolutamente. Establezca el rango para que coincida con su lotería (por ejemplo, 1<unk>49) y habilite "sin repeticiones" para elegir números únicos. Cada combinación es igualmente probable <unk> ningún número o combinación tiene más o menos probabilidades de ganar. La lotería en sí es aleatoria, por lo que cualquier método de selección es igualmente válido.

¿Qué es una semilla en la generación de números aleatorios?

Una semilla es el valor inicial para un generador de números pseudoaleatorios. La misma semilla siempre produce la misma secuencia. Esto es útil para simulaciones reproducibles <unk> establecer la semilla, ejecutar su simulación, grabar la semilla, y se puede reproducir la misma secuencia aleatoria más tarde para la verificación o depuración.

¿Cómo elijo un artículo al azar de una lista?

Por ejemplo, para seleccionar al azar de 7 miembros del equipo, genere un número entero aleatorio de 1 a 7. Cada persona tiene una probabilidad igual a 1/7 ≈ 14.3% de selección.

¿Es Math.random en JavaScript realmente al azar?

No. Math.random es un PRNG simple sin garantías de seguridad. Está bien para juegos y aplicaciones no sensibles, pero nunca debe usarse con fines criptográficos (generación de claves, tokens, contraseñas). Para aplicaciones de seguridad, siempre use crypto.getRandomValues o un CSPRNG del lado del servidor.

¿Cuál es la diferencia entre un PRNG y un CSPRNG?

Un PRNG (Pseudorandom Number Generator) es determinista y rápido pero predecible si se sabe lo suficiente sobre su estado. Un CSPRNG (Cryptographically Secure PRNG) agrega la propiedad de que las salidas son computacionalmente indistinguibles de la verdadera aleatoriedad incluso si un atacante observa algunas salidas. Los CSPRNG son necesarios para contraseñas, claves y tokens.

¿Qué es una simulación de Monte Carlo?

Una simulación de Monte Carlo utiliza un gran número de muestras aleatorias para estimar cantidades complejas. Ejemplo: estimar π colocando aleatoriamente puntos en un cuadrado que contiene un círculo <unk> la relación de puntos dentro del círculo con el total de puntos converge a π/4. Los métodos de Monte Carlo se utilizan en finanzas, física, ingeniería y estadística.

¿Pueden los generadores de números aleatorios ser sesgados?

Los RNG de mala calidad pueden exhibir sesgo <unk> algunos valores que aparecen con más frecuencia que otros, o correlaciones entre valores consecutivos. La calidad se mide mediante pruebas estadísticas (NIST Test Suite, TestU01 BigCrush). Los algoritmos modernos como Mersenne Twister, PCG y xoshiro pasan todas las pruebas estándar y son imparciales para fines prácticos.

Números aleatorios en juegos y generación procedimental

Los videojuegos se basan en la aleatoriedad. Desde la generación aleatoria de fichas en la creación del mundo de Minecraft hasta el mezclado del comportamiento de la IA enemiga, la aleatoriedad de alta calidad crea experiencias reproducibles e impredecibles. La generación de contenido procedimental (PCG) utiliza números aleatorios con restricciones matemáticas para crear un vasto contenido con un mínimo esfuerzo manual.

Los juegos roguelike como Nethack, Spelunky y Hades definen el género a través de la generación de niveles procesales. Cada ejecución genera un calabozo diferente, la colocación de enemigos y la distribución de objetos. El juego siembra esta aleatoriedad para que las carreras se sientan justas (el RNG no decide al azar que mueras inmediatamente) mientras permanece impredecible. Muchos roguelikes muestran la semilla para que los jugadores puedan reproducir una carrera idéntica o compartir semillas interesantes con otros.

Los juegos de mesa han utilizado aleatoriedad física (dices, cartas barajadas, spinners) durante siglos. Los equivalentes digitales deben emular estas distribuciones exactamente. Una tirada de dados estándar d6 utiliza una distribución uniforme sobre {1,2,3,4,5,6}. Un sorteo de una baraja barajada utiliza permutación aleatoria. Algunos juegos utilizan piscinas de dados (tirar varios dados, tomar el más alto) o dados con ventaja / desventaja <unk> que requieren un diseño estadístico cuidadoso para lograr las distribuciones de probabilidad deseadas.

Generando otras distribuciones de números aleatorios uniformes

La mayoría de los GNR producen números uniformemente distribuidos entre 0 y 1 (o enteros en un rango). A menudo necesitamos números aleatorios que sigan otras distribuciones <unk> normal, exponencial, Poisson, etc. Estos pueden derivarse de números aleatorios uniformes utilizando métodos de transformación.

ElTransformación de Box y Mullergenera números aleatorios normalmente distribuidos a partir de dos números aleatorios uniformes U1 y U2: Z1 = √(−2ln(U1)) × cos(2πU2) y Z2 = √(−2ln(U1)) × sin(2πU2). Tanto Z1 como Z2 siguen la distribución normal estándar N(0,1). Escala con Z × σ + μ para obtener N(μ,σ2).

ElMétodo de transformación inversautiliza el inverso de la función de distribución acumulativa (CDF). Para una distribución exponencial con tasa λ: X = −ln(1−U) /λ donde U es uniforme en [0,1]. Esto transforma directamente una variable aleatoria uniforme en una distribuida exponencialmente. El método funciona para cualquier distribución con una CDF analíticamente invertible.

Pruebas estadísticas para el azar

¿Cómo verificamos que un generador de números aleatorios es realmente aleatorio? Las pruebas estadísticas comprueban si una secuencia de números muestra patrones que serían improbables en una secuencia verdaderamente aleatoria.

Prueba de frecuencia (Monobit):Comprueba que los 0 y los 1 ocurren con la misma frecuencia en la representación binaria de los números generados. Una moneda sesgada que aterriza con la cabeza el 60% del tiempo fallaría en esta prueba.

Prueba de ejecución:Comprueba el número de bits idénticos consecutivos (ejecuciones). Demasiadas ejecuciones largas del mismo bit indican un patrón no aleatorio. Una secuencia verdaderamente aleatoria tiene una distribución predecible de longitudes de ejecución.

Prueba de serie:Comprueba si los pares, triples o cuádruples de valores ocurren con la misma frecuencia. Si el generador produce la secuencia 1,2,3,4,5,6,1,2,3,4,5,6 ... pasa la prueba de frecuencia pero falla la prueba de serie <unk> los pares no son aleatorios.

Prueba estadísticaLo que detecta¿La suite de pruebas del NIST?
Frecuencia (Monobit)Frecuencia 0/1 desigualSí , es cierto .
Prueba de ejecucionesDemasiados/pocos valores idénticos consecutivosSí , es cierto .
Correlación automáticaValores correlacionados con los valores anterioresSí , es cierto .
Chi-cuadradoDistribución no uniformeSí (prueba de frecuencia)
Espacio entre cumpleañosEspacio demasiado regular entre los valoresA través de TestU01
Es duro.Pruebas de patrón múltipleSuites separadas

La suite de pruebas TestU01 "BigCrush" se considera la prueba práctica más estricta <unk> ejecuta 106 pruebas y rechaza muchos algoritmos que pasan suites de pruebas más pequeñas. Los algoritmos modernos como PCG y xoshiro pasan BigCrush; los algoritmos más antiguos como el generador congruencial lineal utilizado en las primeras bibliotecas C fallan en múltiples pruebas y no deben usarse para aplicaciones de calidad.

Utilizando este generador de números aleatorios

Establezca los valores mínimos y máximos para definir su rango. Establezca "cuántos" para generar múltiples números a la vez. Habilite la opción "sin repeticiones" para generar una lista de números únicos (muestreo sin reemplazo) <unk> ideal para selecciones de lotería, sorteos de cartas o asignación de participantes a grupos sin repetición. La secuencia generada utiliza la API criptográfica aleatoria de su navegador para obtener resultados de alta calidad adecuados para cualquier propósito que no sea de seguridad. Para el uso de la lotería, genere números iguales al número de selecciones requeridas dentro del rango de su lotería. Para el uso de la rifa, asigne números secuenciales a las entradas y dibuje el número correspondiente. Los resultados se generan de forma fresca cada vez que haga clic en el botón <unk> los resultados anteriores no se almacenan ni rastrean.