Generador de números aleatorios detrás de Random Wheel Spin
Actualizado: 18 de junio de 2025
¿Qué es un generador de números aleatorios (RNG)?
La generación de números aleatorios (mediante un generador de números aleatorios (RNG)) es el proceso de producir un número que es impredecible y no tiene un patrón discernible. Se utiliza ampliamente en juegos, criptografía, loterías y herramientas de toma de decisiones para garantizar que los resultados sean justos e imparciales. Hay tres tipos principales:
- Generadores de números pseudoaleatorios (PRNG): - Utilizan algoritmos para generar números que parecen aleatorios, pero que se basan en un valor inicial (denominado "semilla"). Muchos PRNG utilizan una función llamada Math.Aleatorio, sin embargo, no es seguro y se puede predecir con suficientes muestras
- Generadores de números pseudoaleatorios criptográficamente seguros (CSPRNG): - Se trata de otra forma de "PRNG" que también utiliza una "semilla", pero, a diferencia de un PRNG normal, está diseñado para ser resistente a la ingeniería inversa, impredecible, uniforme y adecuado para fines criptográficos. Esto es lo que utiliza randomwheelspin.com.
- Generadores de números aleatorios verdaderos (TRNG): - Estos utilizan procesos físicos (como el ruido atmosférico o la desintegración radiactiva) para generar resultados verdaderamente impredecibles, pero normalmente (no siempre) se utilizan para aplicaciones fuera de un ordenador.
-
Generadores de números aleatorios verdaderos (TRNG): - Estos utilizan procesos físicos (como el ruido atmosférico o la desintegración radiactiva) para generar resultados verdaderamente impredecibles, pero normalmente (no siempre) se utilizan para aplicaciones fuera de un ordenador.
Random Wheel Spin utiliza un generador de números pseudoaleatorios criptográficamente seguro (CSPRNG) para seleccionar aleatoriamente a los ganadores. Utilizamos
window.crypto.getRandomValues()
. Este método forma parte de la API Web Crypto, que proporciona acceso a un CSPRNG. Es el método RNG más seguro disponible actualmente en los navegadores JavaScript.
Por qué la rueda de Random Wheel Spin se considera criptográficamente segura
- Recoge entropía (una medida de la imprevisibilidad o aleatoriedad de un sistema) de fuentes de hardware y del sistema operativo.
- No depende de semillas predecibles como
Math.random()
(que no es segura). - Cumple con los estándares de aleatoriedad requeridos por los protocolos criptográficos.
¿Cómo genera aleatoriamente la rueda un número o un nombre utilizando RNG?
Cada giro se determina utilizando una combinación de tres tipos de datos:
- "Semilla del servidor": generada de forma secreta utilizando crypto.randomUUID() (generado aleatoriamente y criptográficamente seguro) y hash antes del giro, almacenado en secreto y generado solo una vez por sesión (se restablece después de cada giro).
- "Semilla del cliente": basada en la hora exacta en la que haces clic en
Girar
y un UUID único (creado con crypto.randomUUID()). Se genera aleatoriamente en cada sesión. - "Nonce": un número aleatorio (utilizado solo una vez) para añadir entropía. Se genera aleatoriamente en cada sesión.
Estos tres valores (serverSeed, clientSeed y nonce) se concatenan y se hash juntos utilizando el algoritmo SHA-256
(utilizado por bancos y organismos gubernamentales). El hash resultante se convierte en un número,
y ese número determina cuál será el ángulo final de la rueda de nombres y, por lo tanto, qué segmento de la rueda se selecciona y, en última instancia, el ganador. El Server Seed, el Client Seed y el Nonce solo se utilizan una vez y se rotan después de cada giro.
Dado que SHA-256 es una función criptográfica unidireccional, es imposible revertiringeniería inversa la semilla original a partir del hash.
Esto significa que el resultado está predeterminado antes del giro, pero oculto al usuario para evitar manipulaciones. El hash se almacena y se muestra al usuario a través de un modal si se hace clic en el botón "Mostrar hash de la semilla del servidor"
tan pronto como se inicia el giro. Una vez completado el giro, se revela la semilla original del servidor y se puede ver al hacer clic en el botón "Revelar semilla del servidor". Los usuarios pueden verificar el hash por sí mismos utilizando cualquier calculadora SHA-256,
confirmando que la semilla no ha cambiado. Si el hash coincide, saben que el giro ha sido justo.
🔐 Sistema de equidad demostrable
Para garantizar la transparencia, utilizamos un sistema de revelación de semillas:
-
Antes del giro, te mostramos un hash
SHA-256
de la semilla secreta del servidor. Haz clic en este botón una vez que la ruleta haya empezado a girar:
- Este hash no se puede revertir, por lo que no podemos hacer trampa ni modificarlo después de mostrártelo. Después del giro, revelamos la semilla real del servidor y la semilla del cliente + nonce. Haz clic en este botón una vez que la rueda haya dejado de girar:
-
Puedes verificarlo:
sha256("serverSeed") = pre-shown-hash
Utilice una herramienta SHA-256 (como esta)
Esto demuestra que el resultado fue predeterminado pero oculto, y no manipulado en función de quién fuera elegido.
🎲 ¿Qué tan aleatorio es?
Utilizamos aleatoriedad criptográfica de nivel de navegador a través de crypto.randomUUID()
, junto con SHA-256
para un hash irreversible.
La combinación de números aleatorios seguros, sincronización del lado del cliente y resultados basados en hash garantiza que cada giro sea independiente, impredecible y a prueba de manipulaciones.
🔍 ¿Quieres verificar un giro?
- Copie la semilla del servidor revelada
- Utilice una herramienta SHA-256 (como esta)
- Hash la semilla del servidor
- Compárala con el hash previo al giro
- Si coinciden, el giro fue justo y no fue manipulada
✅ Resumen
Esta ruleta utiliza un sistema demostrablemente justo que es:
- Aleatorio: utiliza aleatoriedad criptográficamente segura
- Justo: los resultados no se eligen después de que comienza el giro
- Transparente: todas las semillas y hash son visibles antes y después
- Lógica de giro independiente: sin repeticiones ni memoria (todas las semillas se restablecen después de cada giro).
- Totalmente del lado del cliente: los datos nunca salen de tu dispositivo.
Dato curioso: ¿cuál es el número aleatorio más elegido entre el 1 y el 100?
El 7 es el número más elegido por los seres humanos entre el 1 y el 100.
🤔 ¿Por qué el 7?
- A la gente le gustan los números impares.
- El 7 se considera "afortunado" en muchas culturas.
- No es múltiplo de 5 ni de 10, por lo que parece menos "obvio".
- Es pequeño, pero no demasiado.
Otros números aleatorios populares:
Los estudios y las encuestas muestran que el 3, el 17, el 37 y el 42 también aparecen mucho. Especialmente el 17 y el 42, probablemente gracias a "La guía del autoestopista galáctico".
Si alguna vez te piden que "elijas un número aleatorio del 1 al 100" y dices 7, ¡en realidad estás siendo predecible!