Un generador de números aleatorios responde a una pregunta concreta: dame un número de este rango en el que todos tengan la misma probabilidad. Parece trivial hasta que intentas hacerlo de forma justa. Si pides a alguien un número «al azar» del 1 al 10, elige el 7 mucho más a menudo de lo que tocaría, y el código ingenuo también tiene sus sesgos. Este generador saca los números de la fuente aleatoria criptográfica del sistema a través de tu navegador y elimina el sesgo de redondeo que introduce un simple resto, así que cada número del rango tiene de verdad la misma probabilidad.
Cómo se sacan los números
- Cada extracción pide a la Web Crypto API del navegador (
crypto.getRandomValues) un entero aleatorio de 32 bits. Es la misma fuente que usan los gestores de contraseñas y las claves de cifrado, no una secuencia pseudoaleatoria con semilla. - Los valores que caen en el último bloque incompleto del espacio de 32 bits se descartan y se vuelven a sacar. Sin este paso, al tomar el resto de la división los números más bajos del rango saldrían un poco más a menudo: es el clásico sesgo del módulo.
- El resultado se lleva a tu rango: desde + (valor aleatorio módulo el tamaño del rango).
- En los sorteos sin repetición, si sale un número que ya estaba, se descarta y se saca otro, así que ninguno se repite.
Ejemplo
Un rango del 1 al 49 tiene 49 números. Si sacas 6 sin repetir, hay 13 983 816 combinaciones posibles: de ahí viene la conocida probabilidad de 1 entre casi 14 millones de las loterías de 6 de 49. Cualquier número que elijas tiene una probabilidad de 6 entre 49, un 12.2 %, de estar entre tus seis.
Las repeticiones cambian la probabilidad
Si se permiten repetidos, cada extracción es independiente, y la probabilidad de que un número concreto salga al menos una vez en n extracciones es 1 − (1 − 1/rango)ⁿ. Si tiras un dado de seis caras dos veces, una cara concreta tiene un 30.6 % de probabilidad de salir, no un 33 %. Sin repetición la cuenta es más sencilla: con n números de un rango de N, cada número tiene una probabilidad de n/N.
Lo que no es
Si lo que necesitas es una cadena de caracteres al azar y no números, el generador de contraseñas usa la misma fuente. Esto es un sorteo justo, no una predicción ni una estrategia: los sorteos anteriores no dicen nada del siguiente y ninguna combinación mejora la probabilidad de ganar la lotería. Si necesitas un sorteo que otras personas puedan comprobar, como el de una promoción con premios o un estudio, deja constancia del método y de los testigos en lugar de confiar en una web: aquí no se registra nada, así que después no hay ninguna prueba que mostrar.
Preguntas frecuentes
¿Cómo funciona un generador de números aleatorios?
Este pide al navegador un número aleatorio de 32 bits de su generador criptográfico (crypto.getRandomValues), descarta los valores que harían más probables los números bajos y lleva el resultado a tu rango. Todos los números del rango tienen la misma probabilidad.
¿Cómo generar números aleatorios sin repetición?
Elige «Sin repetir» en Repeticiones. Cada número que ya ha salido se descarta y se saca otro, así que en la lista no aparece ninguno dos veces. Si pides más números de los que hay en el rango, sale cada número una vez y se muestra un aviso.
¿Cómo sacar un número aleatorio del 1 al 10?
Pon 1 en «Desde», 10 en «Hasta» y 1 en «Cuántos números». Cada número tiene una probabilidad del 10 %. Pulsa «Generar otra vez» para un número nuevo con los mismos ajustes.
¿Cómo hago el sorteo de una rifa?
Numera los boletos o a los participantes, pon el rango del 1 al último número y saca uno. Para varios premios, pide tantos números como premios y elige «Sin repetir», así nadie gana dos veces. La tabla de arriba tiene el ajuste para tres premios entre 250 boletos.
¿Cómo generar un número aleatorio de 5 cifras?
Pon el rango de 10 000 a 99 999. Así hay 90 000 números posibles y todos tienen 5 cifras. Si los ceros a la izquierda cuentan (como en 00 427), usa de 0 a 99 999 y completa con ceros.
¿Se envía algo a un servidor?
No. El sorteo se hace en tu navegador y los números no se transmiten ni se guardan, así que no podemos reproducir ni verificar un sorteo anterior.
Fuentes
- MDN: Crypto.getRandomValues() — la fuente aleatoria criptográfica que se usa en cada extracción
- NIST SP 800-90A Rev. 1: Recommendation for Random Number Generation Using Deterministic Random Bit Generators — en inglés
Por el equipo de Calcelate. Fórmula de las fuentes indicadas arriba.
- 2026-10-06 · Fórmula y textos revisados