Números aleatorios
Concepto de Generadores en Utilidades, conectado con sus herramientas y conceptos vecinos.
Actualizado el 21 de julio de 2026
Un número aleatorio es un valor producido por un proceso sin patrón predecible, donde cada resultado posible dentro de un rango definido tiene la misma probabilidad de ocurrir. Se usan en sorteos, juegos, simulaciones, criptografía y muestreo estadístico. La diferencia clave entre aplicaciones está en si se necesita aleatoriedad verdadera o simplemente aparente.
Aleatoriedad verdadera vs. pseudoaleatoriedad
| Tipo | Cómo funciona | Predecible | Uso típico |
|---|---|---|---|
| Verdadera (TRNG) | Ruido físico (radiación, ruido térmico) | No | Criptografía de alto nivel |
| Criptográfica (CSPRNG) | Entropía del SO + algoritmo seguro | No (en la práctica) | Contraseñas, tokens, llaves |
| Pseudoaleatoria (PRNG) | Fórmula matemática con semilla | Sí, si se conoce la semilla | Juegos, simulaciones, pruebas |
Para un sorteo de empresa o un juego de azar informal, un PRNG moderno es suficiente. Para generar tokens de sesión, contraseñas o llaves criptográficas, hay que usar CSPRNG.
Cómo se generan en distintos entornos
Python:
import random # PRNG (para simulaciones)
random.randint(1, 100)
import secrets # CSPRNG (para seguridad)
secrets.randbelow(100) + 1 # rango [1, 100]
JavaScript:
// PRNG - nunca para seguridad
Math.floor(Math.random() * 100) + 1;
// CSPRNG - en navegadores modernos
const arr = new Uint32Array(1);
crypto.getRandomValues(arr);
const num = (arr[0] % 100) + 1;
Con dados físicos: Un dado de seis caras es un TRNG: la distribución depende del diseño físico, no de un algoritmo. Lanzar 2 dados de 10 caras (d10) genera un número entre 00 y 99 con distribución perfectamente uniforme.
Distribución uniforme: qué significa
Cuando se dice que los números son «uniformemente distribuidos en [1, 100]», significa que cada uno de los 100 valores tiene exactamente una probabilidad de 1/100 = 1 %. Un generador mal implementado puede sesgar los extremos del rango (off-by-one) o producir ciertos valores con más frecuencia que otros, algo invisible a simple vista pero detectable estadísticamente.
Usos más habituales
- Sorteos y loterías: asignar un número a cada participante y generar el ganador.
- Muestreo estadístico: seleccionar aleatoriamente una muestra representativa de una población.
- Juegos y simulaciones: la IA de un videojuego, el lanzamiento de dados en un juego de mesa digital.
- Generación de claves: una contraseña segura de 16 caracteres o una passphrase de 6 palabras dependen de números aleatorios criptográficos.
- Pruebas A/B: asignar aleatoriamente usuarios a grupos de experimento y control.
El error más común: sesgar el resultado
Repetir el sorteo hasta obtener el resultado esperado invalida cualquier garantía de aleatoriedad. Un sorteo justo acepta el primer resultado válido, siempre. Del mismo modo, excluir ciertos números «porque no parecen aleatorios» introduce un sesgo sistemático: el cerebro humano es muy malo juzgando qué parece aleatorio.
Conceptos relacionados
Preguntas frecuentes
¿Los números que genera un ordenador son realmente aleatorios?
¿Cómo hago un sorteo justo con números aleatorios?
¿Qué diferencia hay entre 'aleatorio uniforme' y otros tipos?
Ver todas las herramientas de Utilidades.