Generador de Números Aleatorios

Genera números aleatorios en cualquier rango, enteros o decimales, con o sin repetición.

¿Te ha resultado útil esta calculadora?

★ ★ ★ ★ ★
4.8/5 (21 votos)

Ejemplos de cálculo

Caso de cálculo Resultado
Un número del 1 al 100 Cada valor tiene un 1% de probabilidad
Lanzar un dado (rango 1 a 6) Cada cara tiene una probabilidad de 1 entre 6
6 números sin repetir del 1 al 49 Una de las 13.983.816 combinaciones posibles
10 números del 1 al 100 con repetición Más de un 37% de probabilidad de algún repetido
Mihail Doncenco
Mihail Doncenco Creador del sitio y experto en calculadoras

Fundador y desarrollador de CalcMate. Crea y mantiene todas las calculadoras del sitio, con especial atención a la precisión de las fórmulas y a resultados claros y prácticos.

¿Cómo usar el generador de números aleatorios?

Configura el generador en tres pasos. Primero, introduce el mínimo y el máximo del rango: de 1 a 6 para simular un dado o de 1 a 49 para una combinación de lotería. Segundo, indica cuántos números quieres y si pueden repetirse. Tercero, elige entre enteros o decimales.

Pulsa "Generar" y tendrás los resultados al instante. Cada valor del rango tiene la misma probabilidad de salir, algo que las personas no conseguimos al elegir "al azar". En un experimento clásico de Kubovy y Psotka (1976), al pedir un número del 0 al 9, el 7 fue elegido con mucha más frecuencia que el 10% esperado. En sorteos manuales también influyen el orden de las papeletas y cómo se doblan.

Si necesitas resultados reproducibles, por ejemplo para auditar un sorteo o repetir una simulación, activa la semilla fija e introduce cualquier número. La misma semilla genera siempre la misma secuencia, así que otra persona puede verificar el resultado.

Cómo funciona la generación de números aleatorios

Este generador usa el algoritmo Mersenne Twister (MT19937), publicado por Matsumoto y Nishimura en 1998. Es el generador por defecto en Python, R y Ruby, y en PHP lo usan mt_rand() y, desde la versión 7.1, también rand(). Su periodo es \(2^{19937}-1\), un número de más de 6.000 cifras, por lo que la secuencia no se repite en ningún uso práctico, y está equidistribuido en 623 dimensiones con precisión de 32 bits.

Internamente, el Mersenne Twister no es un generador congruencial lineal: guarda un estado de 624 palabras de 32 bits y lo actualiza con operaciones de desplazamiento y XOR, una técnica conocida como registro de desplazamiento con realimentación generalizado y "retorcido". Para llevar el número al rango que eliges sin favorecer ningún valor, el resultado se escala de forma que cada entero entre el mínimo y el máximo tenga una probabilidad exacta de \(1/n\), siendo \(n\) el número de valores posibles.

Ningún algoritmo de software produce aleatoriedad física verdadera: el Mersenne Twister es pseudoaleatorio y determinista. Supera la mayoría de baterías estadísticas, aunque falla las pruebas de complejidad lineal de TestU01 (L'Ecuyer y Simard, 2007), y a partir de 624 salidas consecutivas se puede reconstruir su estado. Por eso no sirve para contraseñas, claves o apuestas con dinero, que requieren un generador criptográfico (CSPRNG) como los descritos en NIST SP 800-90A. Para sorteos informales, juegos, simulaciones y estadística, su calidad es más que suficiente.

Diagrama del algoritmo Mersenne Twister para generar números pseudoaleatorios

Guía de Uso y Consejos 💡

  • Activa la semilla fija y publícala antes del sorteo: así cualquiera podrá repetir la generación y comprobar que nadie manipuló el resultado.
  • Para comprobar la uniformidad, genera muchos valores: con 600 tiradas de un dado, cada cara debería salir unas 100 veces, con variaciones normales de unas 10 arriba o abajo.

📋Pasos para Calcular

  1. Introduce el valor mínimo y el máximo del rango.

  2. Elige cuántos números generar, si pueden repetirse y si quieres enteros o decimales.

  3. Pulsa "Generar" y copia los resultados.

Errores a evitar ⚠️

  1. Poner un mínimo igual o mayor que el máximo, lo que impide generar un resultado válido.
  2. Dar por hecho que no habrá repetidos sin activar la opción sin repetición: entre 10 números del 1 al 100, la probabilidad de algún repetido supera el 37%.
  3. Pedir más números únicos de los que caben en el rango, por ejemplo 20 valores distintos entre 1 y 10.
  4. Usar un generador pseudoaleatorio para contraseñas, claves o apuestas con dinero, que requieren un generador criptográfico.

Aplicaciones prácticas📊

  1. Sorteos y rifas: elige ganadores sin sesgo humano y, con semilla fija, deja el resultado listo para que cualquiera lo verifique.

  2. Estadística: selecciona una muestra aleatoria de una lista numerada, por ejemplo 50 clientes de un total de 1.200, o asigna participantes a grupos de un test A/B.

  3. Simulaciones Monte Carlo: genera miles de valores aleatorios para estimar probabilidades, riesgos o tiempos de espera.

  4. Juegos y docencia: simula dados, cartas o ruletas y comprueba en clase cómo las frecuencias se acercan a la probabilidad teórica.

Preguntas Frecuentes (FAQ)

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

Un generador de números aleatorios (RNG) es una herramienta que produce números sin un patrón predecible dentro de un rango. Los generadores de software, como el Mersenne Twister, son pseudoaleatorios: parten de una semilla y aplican operaciones matemáticas que dan secuencias con propiedades estadísticas muy cercanas al azar real. Se usan en estadística, simulaciones, sorteos, videojuegos y pruebas de software.

¿Cómo funciona el generador para elegir un número?

El generador elige un valor del rango de forma equiprobable: si hay \(n\) valores posibles, cada uno tiene una probabilidad de \(1/n\). Entre 1 y 100, cada número tiene un 1% de opciones. Esto evita los sesgos de la elección humana: en el estudio de Kubovy y Psotka (1976), las personas que debían decir un número del 0 al 9 "al azar" escogieron el 7 muy por encima del 10% esperado.

¿Puedo generar números aleatorios sin repeticiones?

Sí: con la opción sin repetición, cada número que sale se retira del conjunto, como al sacar bolas de una urna sin devolverlas. Es el método adecuado para rifas, turnos o combinaciones de lotería. Por ejemplo, 6 números distintos del 1 al 49 forman una de las 13.983.816 combinaciones posibles, que se obtiene con el número combinatorio \(\binom{49}{6}\). La cantidad pedida no puede superar el tamaño del rango.

¿Cómo generar números aleatorios entre 1 y 10?

Introduce 1 como mínimo y 10 como máximo, elige cuántos valores quieres y pulsa "Generar". Cada número del 1 al 10 tiene exactamente un 10% de probabilidad en cada extracción. Si generas 5 números con repetición permitida, la probabilidad de que salga al menos un repetido es del 69,8%, así que activa la opción sin repetición si necesitas valores distintos.

¿Qué diferencia hay entre un RNG pseudoaleatorio y uno verdadero?

Un generador pseudoaleatorio (PRNG) calcula los números con un algoritmo determinista, mientras que uno verdadero (TRNG) los obtiene de un fenómeno físico impredecible. Con la misma semilla, un PRNG como el Mersenne Twister repite siempre la misma secuencia. Un TRNG usa fuentes como el ruido térmico o la desintegración radiactiva. Para criptografía se usan generadores criptográficamente seguros (CSPRNG), que combinan entropía física con algoritmos como los de NIST SP 800-90A; en Python, por ejemplo, los ofrece el módulo "secrets".

¿Qué algoritmo usa el generador de CalcMate?

El generador usa el Mersenne Twister (MT19937), desarrollado por Makoto Matsumoto y Takuji Nishimura en 1998. Tiene un periodo de \(2^{19937}-1\) y está equidistribuido en 623 dimensiones, y es el generador por defecto en Python (módulo "random"), R y Ruby, además de la base de mt_rand() en PHP. Es adecuado para sorteos, juegos y estadística, pero no para usos criptográficos.

¿Puedo generar valores aleatorios con decimales?

Sí: activa la opción de decimales e indica cuántas cifras quieres después de la coma. El generador produce valores uniformes en el intervalo elegido, como 47,83 o 0,2951. Es útil para simulaciones Monte Carlo, datos de prueba con precios o medidas, y cualquier caso en que los enteros no tengan suficiente resolución.
Nota: Esta calculadora está diseñada para ofrecer estimaciones útiles con fines informativos. Aunque nos esforzamos por la precisión, los resultados pueden variar según las leyes locales y las circunstancias individuales. Recomendamos consultar con un asesor profesional para decisiones importantes.