¿Puede un ordenador generar azar de verdad?
La pregunta tiene más miga de la que parece. Un ordenador es una máquina determinista: dada la misma entrada, produce siempre la misma salida. Por eso la mayoría del «azar» informático es en realidad pseudoaleatorio: un algoritmo que, partiendo de una semilla, encadena operaciones matemáticas para producir una secuencia que parece impredecible. Si conocieras la semilla y el algoritmo, podrías reproducir la secuencia entera. El azar verdadero, en cambio, se extrae de fenómenos físicos impredecibles: hay servicios que muestrean ruido atmosférico y empresas que apuntan cámaras a un muro de lámparas de lava para sembrar sus generadores.
Para sorteos, muestreos y decisiones cotidianas no necesitas lámparas de lava; necesitas que nadie pueda predecir ni sesgar el resultado. Y ahí es donde importa qué generador usa la herramienta.
Math.random: suficiente para juegos, no para sorteos serios
La función clásica de JavaScript es rápida y válida para animaciones o juegos casuales, pero no está pensada para resistir a un adversario: su estado interno puede deducirse observando salidas anteriores.
crypto.getRandomValues: la fuente que usamos aquí
Es el generador criptográficamente seguro del navegador, alimentado con entropía del sistema operativo (tiempos de hardware, interrupciones y otras fuentes físicas). Sobre esa base aplicamos muestreo por rechazo, una técnica que descarta los valores que introducirían sesgo al ajustar el resultado a tu rango: sin ella, algunos números saldrían ligeramente más a menudo que otros. El resultado es una distribución uniforme de verdad, donde cada número entre el mínimo y el máximo tiene exactamente la misma probabilidad.
Con repetición o sin repetición: dos tipos de azar
Piensa en la diferencia entre tirar un dado y sacar bolas de un bombo. El dado puede repetir resultado en cada tirada (muestreo con reemplazo); la bola extraída del bombo no vuelve a entrar (muestreo sin reemplazo). Usa con repetición para simular tiradas, generar datos de prueba o cualquier caso donde cada resultado sea independiente. Usa sin repetir cuando cada número representa algo único: elegir 3 ganadores entre 250 participantes, repartir turnos entre 12 compañeros o seleccionar 20 alumnos de una lista para una encuesta sin entrevistar dos veces al mismo.
Cómo montar un sorteo justo en cuatro pasos
- Numera a los participantes en una lista cerrada y ordenada (del 1 al total) y publícala o guárdala antes de la tirada.
- Anuncia las reglas por adelantado: cuántos premios hay, si habrá reservas y qué ocurre si un ganador no responde. Cambiar las reglas después invalida la confianza en el resultado.
- Genera los números en directo o grabando la pantalla, con la opción «sin repetir» activada y tantos resultados como premios más reservas.
- Publica el resultado junto con la lista numerada, para que cualquiera pueda comprobar la correspondencia entre número y ganador.
Más usos de los números al azar
- Muestreo: seleccionar una muestra imparcial de clientes, facturas o encuestados para revisar o entrevistar.
- Repartos y órdenes: decidir quién empieza un juego, formar equipos o asignar tareas sin favoritismos.
- Datos de prueba: rellenar hojas de cálculo o simulaciones con valores dentro de un rango controlado.
- Decisiones bloqueadas: cuando dos opciones empatan, delegar en el azar es más rápido que seguir deliberando.
Si necesitas generar otros datos, prueba el generador de contraseñas, el generador de UUID o el generador de códigos QR. Tienes el catálogo completo en herramientas de archivos.