Generador de Números Aleatorios Online

Acrafto Team Matemáticas
Actualizado
Ajustes rápidos
Todo funciona en tu navegador. Ningún número sale nunca de tu dispositivo.

¿Cómo funciona el Generador de Números Aleatorios?

El generador te ofrece dos fuentes de aleatoriedad, y tú eliges cuál se ajusta a tu necesidad.

Aleatorio seguro obtiene entropía de tu sistema operativo a través de la Web Crypto API (crypto.getRandomValues()). Es impredecible e irrepetible — la opción correcta para un sorteo real en el que nadie debe poder adivinar el resultado de antemano.

Por semilla convierte cualquier texto que escribas en un estado inicial para un generador determinista (xoshiro128**). La misma semilla siempre produce los mismos números, así que cualquiera puede repetir tu sorteo y confirmar que obtuviste lo que dices haber obtenido.

Ambos se ejecutan por completo en tu navegador. Ningún número llega jamás a un servidor.

Sin sesgo de módulo

La mayoría de los generadores sencillos hacen encajar un valor aleatorio de 32 bits en tu rango con value % range. Cuando el rango no divide 2³² de forma exacta, los números más bajos aparecen ligeramente más a menudo que el resto. En miles de sorteos, eso es medible.

Este generador usa en su lugar muestreo por rechazo: los valores que caerían en la cola desigual se descartan y se vuelven a sortear. Cada número de tu rango tiene exactamente la misma probabilidad. Puedes comprobarlo tú mismo con la prueba de uniformidad incorporada.

Qué puede hacer el generador

Rango

  • Mínimo y máximo — cualquier rango entero o decimal, incluidos valores negativos
  • Cuántos números — de 1 hasta 1.000.000 en un solo sorteo
  • Sin repeticiones — cada número aparece como máximo una vez, como en un sorteo real
  • Ordenar — orden de sorteo, ascendente o descendente; ordenar nunca afecta a la aleatoriedad
  • Paso — restringe los resultados a múltiplos de un valor, de modo que solo salgan 0, 5, 10, 15
  • Excluir números — indica valores que nunca deben salir sorteados

Modo

  • Fuente de aleatoriedad — seguro (Web Crypto) o por semilla (reproducible)
  • Semilla — cualquier texto; la misma semilla siempre repite el mismo sorteo
  • Distribución — uniforme, normal (gaussiana), exponencial, Poisson, triangular, binomial
  • Pesos — da a determinados números una probabilidad mayor, escritos como number:weight
  • Notación de dados3d6+2, d20, 2d20kh1 para ventaja, 4d6dl1 para tirar estadísticas

Salida

  • Separador — coma, espacio, punto y coma, tabulación, salto de línea, o lo que escribas
  • Sistema numérico — decimal, binario, octal, hexadecimal o base 36
  • Rellenar con ceros — convierte 7 en 007 para números de tique o de identificación
  • Prefijo y sufijo — envuelve cada número con texto fijo
  • Plantilla{n} es el número, {i} su posición, así user{n} se convierte en user42
  • Copiar como — texto plano, CSV, JSON o una tabla Markdown

Estadísticas

Cada sorteo se resume en vivo: suma, media, mediana, mínimo, máximo, desviación típica, además de cuántos resultados son pares, impares o primos. Un histograma muestra la forma de la distribución, y una prueba de chi-cuadrado te dice si los resultados realmente coinciden con una distribución uniforme.

Historial

Los últimos 50 sorteos se guardan en tu navegador, junto con la configuración que los produjo — un clic restaura cualquiera de ellos. Las configuraciones que uses a menudo pueden guardarse como preajustes con nombre, y todo el conjunto se exporta a un archivo JSON que puedes importar en otro equipo. Nada se almacena en ningún sitio salvo en este navegador.

Teclado

Pulsa Espacio o R para volver a sortear sin tocar el ratón.

Preajustes rápidos

PreajusteRangoCantidadUso
🎲 Dado1–61Juegos de mesa, tomar decisiones
🪙 Moneda0–11Cara o cruz
🎰 Lotería1–496Único, ordenado, como un sorteo real
💯 1–1001–1001Porcentajes, divisiones A/B
🔢 PIN0–94Cuatro dígitos, con repeticiones permitidas

Sorteos reproducibles

El modo por semilla existe para los momentos en que “confía en mí, fue aleatorio” no basta.

Elige una semilla que todos puedan acordar de antemano — una fecha, un hashtag, el precio de cierre de algo público — y anúnciala antes de sortear. Cualquiera podrá entonces escribir la misma semilla con la misma configuración y obtener el resultado idéntico. No has demostrado que los números fueran impredecibles; has demostrado que no repetiste el sorteo hasta que te gustó el resultado.

Así es también como se hace repetible la aleatoriedad en un trabajo que debe poder verificarse: un plan de muestreo que un compañero pueda volver a ejecutar, un conjunto de datos de prueba (fixtures) que se mantiene estable a lo largo de una batería de tests, un ejercicio de clase donde cada estudiante recibe los mismos datos “aleatorios”.

Elegir una distribución

Uniforme da a cada número del rango la misma probabilidad. Es lo que la gente suele entender por aleatorio, y es la opción por defecto.

Las demás agrupan los resultados en torno a un valor, que es lo que tienden a hacer las magnitudes del mundo real:

  • Normal (gaussiana) — alturas, errores de medición, notas de exámenes. Se define una media y una desviación típica.
  • Exponencial — tiempos de espera entre eventos independientes.
  • Poisson — recuentos de eventos en un intervalo fijo: llegadas por hora, defectos por lote.
  • Triangular — cuando conoces el mínimo, el máximo y el valor más probable, pero nada más. Habitual en estimaciones de proyectos.
  • Binomial — éxitos sobre un número fijo de pruebas con una probabilidad fija.

Toda distribución queda recortada al rango que definas, así que una cola gaussiana larga no puede escapar de tu mínimo y tu máximo.

Dónde se usan los números aleatorios

Juegos y entretenimiento

  • Juegos de mesa — tiradas de dados, orden de turnos
  • Juegos de rol de mesa (RPG)4d6dl1 para atributos de personaje, 2d20kh1 para ventaja
  • Sorteos — elegir un ganador, con una semilla para que los participantes puedan verificarlo
  • Cuestionarios — orden aleatorio de preguntas

Estadística y ciencia

  • Muestreo — extraer una muestra de una población sin repeticiones
  • Pruebas A/B — asignar participantes a grupos
  • Simulación Monte Carlo — estimar probabilidades por repetición
  • Bootstrapping — remuestreo para estimar la incertidumbre

Desarrollo

  • Datos de prueba — un millón de valores, generados en segundo plano para que la página siga respondiendo
  • Fixtures — con semilla, para que un test que falla, falle siempre de la misma manera
  • IDs aleatorios — con relleno, prefijos o una plantilla
  • Pruebas de carga — identificadores con plantilla como user{n}@example.com

Números verdaderamente aleatorios vs. pseudoaleatorios

Math.random()crypto.getRandomValues()Por semilla (xoshiro128**)
TipoPseudoaleatorioCriptográficamente seguroPseudoaleatorio, determinista
Fuente de entropíaSemilla elegida por el motorCSPRNG del sistemaTu texto de semilla
¿Predecible?PotencialmenteNoSí, por diseño
¿Repetible?NoNoSiempre
Adecuado para seguridadNoNo
Adecuado para estadísticaDepende
Adecuado para sorteos verificablesNoNo

Math.random() no se usa en ningún punto de esta herramienta.

Sorteos sin repetición

Con Sin repeticiones activado, cada número del rango aparece como máximo una vez. Ideal para:

  • Sorteos — nadie puede ganar dos veces
  • Permutaciones — barajar un conjunto de elementos
  • Bingo — cantar números que quedan marcados
  • Lotería — seis números distintos del 1 al 49

El sorteo utiliza un barajado parcial de Fisher-Yates, así que pedir 6 números de entre un millón es tan rápido como pedir 6 de entre 49 — nunca repite intentos esperando evitar una colisión. Si pides más números únicos de los que el rango puede ofrecer, el generador te lo indica en lugar de quedarse bloqueado.

Exportar resultados

Copia los números como texto plano con el separador que prefieras, como CSV para una hoja de cálculo, como JSON para código, o como una tabla Markdown para documentación. Los sorteos muy grandes se mantienen íntegros en memoria y se copian íntegros, aunque solo se muestren en pantalla los primeros dos mil.

Generar números aleatorios en tu propio código

JavaScript / TypeScript

// Entero criptográficamente seguro en [min, max], sin sesgo de módulo.
// El enfoque ingenuo `value % range` favorece a los números bajos cuando
// el rango no divide 2**32 de forma exacta - por eso rechazamos los
// valores que caen en la cola desigual.
function randomInt(min, max) {
  const range = max - min + 1;
  const limit = Math.floor(0x100000000 / range) * range;
  const arr = new Uint32Array(1);
  let value;
  do {
    crypto.getRandomValues(arr);
    value = arr[0];
  } while (value >= limit);
  return min + (value % range);
}

Python

import random
import secrets

# Criptográficamente seguro, sin sesgo de módulo
n = secrets.randbelow(max - min + 1) + min

# Reproducible: la misma semilla siempre da la misma secuencia
rng = random.Random('my-seed')
n = rng.randint(min, max)

# Sin repetición
sample = random.sample(range(min, max + 1), count)

PHP

// Criptográficamente seguro (PHP 7+), sin sesgo de módulo
$n = random_int($min, $max);

// Reproducible
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);

Preguntas frecuentes (FAQ)

¿El resultado es realmente aleatorio? En modo seguro, sí. Proviene de crypto.getRandomValues(), un generador criptográficamente seguro alimentado por el pool de entropía de tu sistema operativo. Los resultados están distribuidos de forma uniforme y son impredecibles. El modo por semilla es deliberadamente lo contrario: es reproducible, que es justo su propósito.
¿Cuántos números puedo generar de una vez? Hasta 1.000.000. Los sorteos por encima de 50.000 se calculan en un worker en segundo plano para que la página siga respondiendo, y la pantalla muestra los primeros 2.000 junto con el recuento del resto — al copiar obtienes todo igualmente.
¿Puedo generar números negativos? Sí. Establece un mínimo negativo. Funciona con todo el rango de números de JavaScript, incluidos rangos negativos en ambos extremos.
¿Afecta el ordenado a la aleatoriedad? No. Los números se sortean primero y se ordenan después. Ordenar solo cambia el orden en que los ves.
¿La misma semilla dará los mismos números mañana? Sí, y en cualquier otro dispositivo o navegador. El generador por semilla es totalmente determinista y depende únicamente de tu semilla y tu configuración.
¿Qué me dice la prueba de uniformidad? Ejecuta una prueba de chi-cuadrado que compara cuántas veces salió realmente cada número frente a cuántas veces debería haber salido. Si el estadístico se mantiene por debajo del valor crítico, los resultados son coherentes con una distribución uniforme. Necesita un rango razonablemente estrecho y sorteos suficientes — al menos cinco por valor posible — para poder decir algo significativo.
¿Cómo funcionan los pesos? Se escriben como pares number:weight, por ejemplo 1:5, 2:1, 3:1. Aquí el 1 tiene cinco veces más probabilidad que el 2 o el 3. Los números que no incluyas reciben un peso de cero y nunca salen sorteados.
¿Qué notación de dados se admite? 3d6 tira tres dados de seis caras. Añade un modificador con 3d6+2. Conserva o descarta dados con kh, kl, dh, dl — así 2d20kh1 conserva el más alto de dos d20 (ventaja) y 4d6dl1 descarta el más bajo de cuatro d6.
¿Se guarda mi historial en algún sitio? Solo en este navegador, en el almacenamiento local. Nunca llega a un servidor, nunca se sincroniza con otro dispositivo y desaparece si borras los datos de este sitio. Expórtalo a JSON si quieres conservarlo o moverlo.

Agradecería que compartieras estas páginas con amigos, las guardaras en favoritos o las enlazaras. ¡Gracias! 🙏