¿La ruleta está trucada? Compruébalo tú mismo
Azar criptográfico, ganador decidido antes de girar y probabilidades siempre a la vista. Te lo demostramos.
Respuesta corta: no, la ruleta no está trucada
No, la ruleta de LuckyWheel no está trucada, y no existe ninguna opción, visible u oculta, para trucarla. El ganador se decide dentro de tu navegador con un generador criptográfico (crypto.getRandomValues) y solo después empieza a girar la ruleta, que se limita a llevarte hasta la porción ganadora. Cada opción tiene la probabilidad que ves en pantalla, la misma para todas salvo que tú cambies los pesos.
Desconfiar es normal cuando hay un premio de por medio o un alumno sale dos veces seguidas. Aquí tienes el método, las cifras exactas y dos herramientas para verificarlo tú mismo.
Cómo se elige al ganador, paso a paso
Todo ocurre en tu dispositivo, siempre en este orden:
- Sorteo. Al pulsar Girar, el navegador elige el ganador entre las opciones activas (ni ocultas, ni eliminadas, ni agotadas) con
crypto.getRandomValues, el mismo tipo de azar que protege las claves de cifrado. - Punto de llegada. Se calcula un ángulo de parada al azar dentro de la porción ganadora, con un margen en cada borde (el 15 % de su anchura, 3° como máximo) para que el puntero nunca se detenga sobre una línea dudosa.
- Vueltas. Se añaden vueltas completas según la duración elegida, más 0, 1 o 2 vueltas extra al azar para variar cada giro.
- Animación. La ruleta gira y frena hasta ese ángulo. El movimiento no decide nada: muestra un resultado que ya existe.
Por eso la fuerza de tu gesto solo cambia la duración y el número de vueltas, nunca el ganador. Con la parada manual ocurre lo mismo: el botón Parar acorta la frenada, pero hacia el mismo ángulo de destino.
¿Por qué el mismo nombre sale dos veces?
Porque el azar no tiene memoria. En el modo normal, cada giro empieza de cero y el nombre que acaba de salir conserva las mismas posibilidades que los demás. Con 10 opciones, la probabilidad de que se repita justo el ganador anterior es del 10 %.
Además, las repeticiones llegan mucho antes de lo que dice la intuición. Es la paradoja del cumpleaños: en un grupo de solo 23 personas, hay más de un 50 % de probabilidades de que dos cumplan años el mismo día. Con n opciones iguales y k giros, la probabilidad de ver al menos una repetición es:
P = 1 − n! / ((n − k)! × n^k)
Ejemplo: con 10 opciones y 5 giros, solo 30 240 de las 100 000 secuencias posibles (10 × 9 × 8 × 7 × 6) no repiten ningún nombre. Es decir, hay un 69,8 % de probabilidades de ver al menos una repetición. Si cada persona debe salir una sola vez, activa el modo eliminación, como hace la ruleta de nombres para clase. Prueba con tus propias cifras:
Simulador: lanza 100 000 giros y compara
El simulador gira una ruleta virtual 10 000, 100 000 o un millón de veces con el mismo generador que la ruleta real y cuenta cuántas veces sale cada opción. Elige entre 2 y 100 opciones iguales, o carga tu ruleta actual con sus pesos.
El cálculo se ejecuta en segundo plano en tu navegador, sin enviar nada. Obtendrás un histograma con la frecuencia observada y la esperada de cada opción, la desviación máxima en porcentaje, una prueba de chi cuadrado (χ²) con su valor p y el tiempo de cálculo.
Cómo leerlo: con 10 opciones y 100 000 giros, cada una debería salir unas 10 000 veces, con diferencias normales de unas decenas, a veces de un par de centenares. Un valor p superior a 0,01 indica que esas diferencias son compatibles con el puro azar. Si alguna vez ves uno más bajo, no te alarmes: con un generador perfecto, ocurre en una de cada cien pruebas.
Pesos y probabilidades: siempre a la vista
A veces quieres que una opción tenga más posibilidades, como una participación extra en un sorteo. Para eso están los pesos, que nunca se esconden: en cuanto uno es distinto de 1, cada opción muestra su probabilidad en porcentaje y aparece el aviso «Probabilidades personalizadas» bajo la ruleta.
Además, el ángulo de cada porción es proporcional a su peso, así que lo que ves es exactamente lo que hay. Con pesos 1, 2 y 3, las porciones miden 60°, 120° y 180° y salen el 16,7 %, el 33,3 % y el 50 % de las veces. Si alguien infla una opción, se nota a simple vista.
Lo que nunca haremos
LuckyWheel no tiene ni tendrá un modo trucado, un «ganador forzado» ni pesos ocultos, y ningún servidor decide por ti. Es uno de nuestros cinco compromisos públicos, junto con la gratuidad, la ausencia de cuentas y unas listas que no salen de tu dispositivo. Para un concurso con premio, usa el sorteo online con certificado o el sorteo de Instagram, que descarta las participaciones repetidas.
El código del sorteo, explicado
El núcleo cabe en unas veinte líneas de JavaScript sin ofuscar, en el archivo rng.js, que puedes leer con las herramientas para desarrolladores de tu navegador (tecla F12). Esto es lo que hace:
- Llena una reserva de 256 números de 32 bits con
crypto.getRandomValuesy la renueva cuando se agota. - Para obtener un entero entre 0 y n − 1, aplica el muestreo por rechazo: descarta todo valor igual o superior a
2^32 − (2^32 mod n)y devuelvex mod n. Así elimina el sesgo del módulo, que favorecería un poco a los números más bajos. - Para elegir la opción, convierte cada peso en un entero (peso × 100), calcula las sumas acumuladas, saca un número entre 0 y el total y localiza la opción por búsqueda binaria. Así, la probabilidad de cada opción es su peso dividido entre la suma de todos.
- Por último, calcula el ángulo de parada dentro de la porción ganadora.
Math.random, que no es criptográfico, está prohibido en todo lo que decide un resultado o mezcla una lista.
Preguntas frecuentes
¿Se puede trucar una ruleta online?
Técnicamente, sí: una web podría elegir el resultado con reglas ocultas o dar más peso a una opción sin mostrarlo. Por eso conviene usar herramientas que expliquen su método. En LuckyWheel no hay ninguna opción para trucar el resultado, los pesos aparecen siempre en porcentaje y el ganador se decide con azar criptográfico en tu propio navegador, antes de que la ruleta gire.
¿Por qué sale tantas veces el mismo nombre?
Porque cada giro es independiente y las coincidencias llegan antes de lo que parece: con 10 opciones, hay un 69,8 % de probabilidades de ver al menos una repetición en solo 5 giros. Para que cada persona salga una sola vez, activa el modo eliminación en los ajustes; con el reinicio automático, la lista vuelve a empezar cuando ya han salido todos.
¿La fuerza con la que giro cambia el resultado?
No. La velocidad de tu gesto solo decide cuánto dura el giro, cuántas vueltas da y en qué sentido gira. El ganador se sortea en ese mismo instante con el generador criptográfico, sin tener en cuenta el gesto. Girar suave o fuerte, con el botón o con el teclado da las mismas probabilidades.
¿Cómo demuestro a los participantes que el sorteo fue limpio?
Publica las reglas antes de empezar y sortea en directo, en una videollamada o compartiendo pantalla. Envía la ruleta con un enlace de solo lectura para que todos vean las opciones. En los concursos, el sorteo online genera un certificado con la huella SHA-256 de la lista de participantes: cualquiera puede recalcularla y comprobar que la lista no cambió después.
¿LuckyWheel usa Math.random?
No para elegir resultados. Math.random es rápido, pero no está diseñado para ser impredecible. Los sorteos, las mezclas de listas y los repartos del generador de equipos usan crypto.getRandomValues con muestreo por rechazo, y una comprobación automática rechaza cualquier Math.random en esas partes del código. Solo se permite en efectos decorativos, como el confeti.
Actualizado el por el equipo de LuckyWheel