¿Qué fuente de azar usa un giro?
Web Crypto: el generador criptográficamente seguro del propio navegador, al que se llega con crypto.getRandomValues. Nunca Math.random, que es un generador pseudoaleatorio con semilla cuyo estado puede aproximar un script de la misma página, y que por especificación no ofrece ninguna garantía de imprevisibilidad.
Los valores llegan en lotes de 256 palabras a un búfer privado, porque un giro necesita nueve — una para el ganador y ocho para el identificador del sorteo — y una llamada a la plataforma por palabra serían nueve llamadas por pulsación. El búfer pertenece a la página que tienes abierta; nada de él se comparte, se guarda ni se envía.
¿Por qué la ruleta tira a la basura números aleatorios?
Porque tomar una palabra aleatoria de 32 bits módulo el número de sectores no es uniforme salvo que el número de sectores divida 2³² exacto, cosa que no ocurre en ninguna ruleta cuyo tamaño no sea potencia de dos. Los primeros sectores recibirían cada uno una palabra de más y quedarían favorecidos en un factor de aproximadamente uno más n entre 2³².
Así que el sorteo descarta la cola. Toma el mayor múltiplo del total que cabe en el espacio de palabras, tira cualquier palabra igual o mayor y vuelve a sortear. En una ruleta de seis sectores, el sesgo que esto elimina es de una parte entre mil millones: demasiado pequeño para que nadie lo note, que es exactamente por lo que una página sobre aleatoriedad tiene que eliminarlo en vez de llamarlo insignificante.
¿Cómo cambia un peso las probabilidades?
La probabilidad de una opción es su peso dividido entre la suma de todos los pesos, exactamente. Los pesos se suman como números enteros, se saca un entero uniforme entre cero y ese total, y el sector en el que cae se encuentra recorriendo la suma acumulada: ninguna probabilidad se guarda nunca como decimal, así que no hay redondeo donde se pueda esconder un sesgo.
El borde se dibuja con los mismos números. El ángulo de un sector es su parte del total, así que un sector que parece la quinta parte de la ruleta es la quinta parte de la ruleta, y el porcentaje que aparece junto a una opción es la cifra que usa el sorteo.
¿Decide la animación dónde para la ruleta?
No. El ganador se sortea primero y la animación se calcula hacia atrás desde él: la geometría convierte el índice ganador en el ángulo en el que la ruleta tiene que acabar, y el giro corre hasta ese ángulo. La imagen es una proyección del resultado y no puede contradecirlo.
Ese orden significa también que la duración del giro no cambia nada del resultado. Un giro de un segundo y uno de sesenta sortean igual; lo único distinto es cuánto rato mira la sala.
¿Qué es un identificador de sorteo y dónde vive el registro?
Cada sorteo lleva un identificador de ocho caracteres tomado de la misma fuente de azar, escrito en un alfabeto sin I, L, O ni U para poder leerlo en voz alta desde un proyector sin que se confunda. Queda anotado con la etiqueta de la opción, la hora, el modo y cuántas opciones quedaban después.
El registro lo guarda la página en la que estás, en tu dispositivo, mientras dure la sesión. No se sube, y no sobrevive a la pestaña salvo que lo hayas exportado. Es deliberado: una lista de a quién le tocó en una clase es justo el tipo de registro que no debería acumularse en el servidor de otra persona.
Lo que esta página no promete
Nada de esto está certificado ni auditado, ni lo puede verificar un tercero. Un identificador de sorteo señala una línea de un registro que escribió tu propio navegador, y eso resuelve un recuerdo pero no es una prueba que nadie de fuera de la sala pueda comprobar; todavía no hay detrás ningún esquema de compromiso publicado.
Así que esto es una ruleta para sacar un nombre en una sala, un orden para una reunión, un premio en un estand. No es una fuente de azar para una lotería, para un sorteo con premio regulado, para una clave criptográfica ni para nada donde un resultado sesgado o predecible le cueste dinero a otra persona. Las herramientas que responden por esas cosas están auditadas, y esta no.
De dónde salen estos datos
Dos afirmaciones de esta página son sobre la plataforma y no sobre nuestro propio código: qué dice la especificación que hace la fuente de azar del navegador, y qué dice que no garantiza. Las dos se pueden comprobar en la fuente. Todo lo demás describe el motor que hace funcionar este sitio.
Si algo de aquí está mal
Dilo. Un defecto en esta página es un defecto en la afirmación principal del producto, así que un aviso sobre ella se lee antes que nada, y la corrección se publica con la fecha en la que cambió. El formulario de contacto es el canal, y la respuesta dice qué se cambió en vez de acusar recibo.