“Es aleatorio” es una afirmación, no un hecho. Para que una selección sea justa deben cumplirse dos cosas: la fuente de los números no debe ser predecible y todas las opciones deben tener la misma probabilidad.
Ambas se pueden implementar, ambas se suelen hacer mal y fallan de forma independiente. Una herramienta puede tener una fuente aleatoria excelente y un mapeo sesgado, o un mapeo perfectamente uniforme alimentado por números predecibles.
De Dónde Viene la Aleatoriedad
La aleatoriedad genuina proviene de procesos físicos que no están determinados por un estado previo:
- Desintegración radiactiva — el momento exacto en que un átomo se desintegra no se puede predecir
- Ruido térmico — fluctuaciones aleatorias de voltaje en una resistencia
- Ruido atmosférico — estática de fondo de la actividad de los rayos
- Medición cuántica — resultados genuinamente indeterminados
Un ordenador no puede observar estos procesos directamente. Lo que hace es muestrear un generador de hardware — /dev/urandom y sus equivalentes — que a su vez se inicializa a partir de procesos físicos. Eso es un generador de números aleatorios verdadero.
El caso mucho más común es un generador de números pseudoaleatorios: un algoritmo determinista que produce una secuencia que solo parece aleatoria.
next = (previous × multiplier + increment) mod modulus
La propiedad crítica no es sutil. Si conoces el algoritmo y la semilla, puedes calcular cada valor que producirá la secuencia. No de forma aproximada: exactamente. Por eso Math.random(), usado por la mayoría de los sitios web, no sirve para nada que importe: su salida está determinada por el estado interno, y recuperar ese estado a partir de las salidas observadas hace que todo resultado futuro sea predecible.
El Punto Intermedio que Decide la Cuestión
Las plataformas modernas no usan entropía de hardware en bruto en cada llamada. Usan un PRNG criptográficamente seguro: determinista, pero inicializado a partir de entropía de hardware y diseñado de modo que observar las salidas no revele el estado.
| TRNG de hardware | CSPRNG | PRNG ordinario | |
|---|---|---|---|
| Basado en entropía física | Sí | Sí | No |
| Determinista dado el estado | No | Sí | Sí |
| La salida revela el estado | No | No | Sí |
| Adecuado para un sorteo de premios | Sí | Sí | No |
Un CSPRNG es determinista en el mismo sentido en que lo es cada pieza de software que usas. Lo que lo hace aceptable es que su estado no se puede recuperar a partir de lo que ya ha emitido.
Los navegadores lo exponen mediante crypto.getRandomValues(). Es la fuente que usan los sorteos de este sitio.
La Uniformidad es un Problema Aparte
Tener una buena fuente no es suficiente. El mapeo de un número aleatorio a una elección todavía puede estar sesgado, y este es el error que cometen la mayoría de las herramientas.

El enfoque ingenuo — escalar un número decimal aleatorio de 0 a 1 al rango — sesga el extremo inferior. Con 40 nombres, algunos valores aleatorios caen más allá del final del último intervalo y, si se recortan en lugar de descartarse, el primer nombre aparece con una frecuencia ligeramente mayor que el último.
El sesgo es lo bastante pequeño como para que nadie lo note, que es precisamente por lo que sobrevive en la mayoría de las implementaciones.
El enfoque correcto es el muestreo por rechazo: extrae un valor y, si el resultado cae en el intervalo final incompleto, descártalo y vuelve a extraer. La distribución se vuelve exactamente uniforme, de modo que cada entrada tiene una probabilidad de 1/N, incluso en un sorteo de 40 nombres donde una implementación con número decimal escalado da al primer nombre una probabilidad ligeramente mayor.
La misma técnica aparece en el generador de identificadores cortos de este sitio, donde la tasa de aceptación es 252/256 y el sesgo resultante es de unas dos partes en diez millones. Lo bastante pequeño para ser irrelevante y lo bastante pequeño como para que una implementación descuidada hubiera pasado desapercibida, que es exactamente por lo que merece la pena medirlo.
Tres Fallos Humanos que No Son Culpa de la Herramienta
La falacia del jugador. Después de cinco caras seguidas, parece que toca cruz. Cada tirada es independiente. La moneda no recuerda haber sido injusta, y la probabilidad correcta tras cinco caras sigue siendo exactamente 1/6 por cara.
La ilusión de agrupación. Las rachas en datos aleatorios parecen patrones porque las estás buscando. Tres resultados idénticos seguidos ocurren mucho más a menudo de lo que sugiere la intuición. Y los datos realmente aleatorios parecen irregulares en tramos cortos: una secuencia que parece perfectamente uniforme es más probable que sea fabricada que genuina.
La paradoja del cumpleaños. En un grupo de 23 personas, es probable que dos compartan cumpleaños. Esto es aritmética, no psicología, pero ilustra por qué la gente estima tan mal la aleatoriedad: las probabilidades individuales son diminutas y se multiplican.
El hilo común es que una sola observación no demuestra nada, en ningún sentido. Un sorteo que pareció raro es tan poco informativo como uno que pareció ordenado.
Los Dos Fallos que Más Importan en la Práctica
Una vez trazado el mecanismo, merece la pena nombrar qué es lo que realmente sale mal cuando se disputa una selección, y ninguno de los dos tiene que ver con la fuente.
El operador anuló el resultado. Volver a sortear, corregir a mano, saltarse un nombre ausente a mitad del sorteo. Un generador perfecto con un resultado modificado sigue siendo un resultado modificado, y es visible para cualquiera que lo haya visto.
El grupo no era el grupo publicado. Añadir un nombre, o excluir uno en silencio, cambia la selección independientemente del algoritmo.
Ambos son fallos de proceso, y ambos son lo que evita un sorteo grabado. Por eso grabar con la lista de participantes en el encuadre vale más que cualquier propiedad técnica: bloquea los dos.
Dónde Está Justificado Este Nivel de Rigor
Para elegir un almuerzo, nada de esto importa. Cualquier generador produce un almuerzo aceptable.
Se vuelve determinante cuando hay algo en juego, una reputación o una dimensión legal:
- Sorteos de premios y concursos. Un resultado verificable es el objetivo
- Asignación de empleados o de tareas. La gente inspeccionará el proceso
- Aleatorización científica y clínica. El estándar del campo es una aleatoriedad documentada, con semilla y reproducible
- Contextos normativos y de auditoría. La aleatoriedad documentada es con frecuencia un requisito, no una preferencia
Los requisitos en todos estos casos son los mismos cuatro, y son breves: el grupo es fijo y publicado, los pesos se publican si existen, la fuente no es predecible y el resultado se registra con el grupo visible.
Cómo Comprobarlo Tú Mismo
No puedes auditar un CSPRNG en una pestaña del navegador, pero sí puedes razonar sobre el mecanismo, y eso es suficiente.
Pregunta cuál es la fuente. Si la respuesta es “una función aleatoria”, pregunta si es la predecible. crypto.getRandomValues() es una respuesta concreta y comprobable.
Pregunta cómo se consigue la uniformidad. Si la respuesta implica escalar un número decimal a un rango sin mencionar el muestreo por rechazo, el mapeo probablemente esté sesgado. Poco, pero de forma medible.
Pregunta qué podría haber cambiado el operador. Si nada, el resultado es defendible. Si se pudo saltar un nombre o repetir el sorteo, no lo es, independientemente de la fuente.
La página de imparcialidad cubre la implementación de este sitio con más detalle. Merece la pena leerla una vez si estás eligiendo una herramienta para una decisión que van a cuestionar.