Saltar al contenido
FastCheck · Preventa Revisar
Transparencia · Sorteos PokeDatos

Así elegimos a los ganadores: CSPRNG

Nuestros sorteos no usan tómbolas, papelitos ni "al azar del admin". Usamos un generador de números pseudoaleatorios criptográficamente seguro — la misma tecnología con la que se protegen contraseñas, tarjetas bancarias y comunicaciones cifradas en todo el mundo. Aquí te explicamos qué es, cómo funciona y quiénes más confían en ella.

#¿Qué es un CSPRNG?

CSPRNG significa Cryptographically Secure Pseudo-Random Number Generator (generador de números pseudoaleatorios criptográficamente seguro). A diferencia de un generador "común", un CSPRNG está diseñado para que sus resultados sean imposibles de predecir, incluso conociendo todos los números que generó antes. Por eso se usa para crear claves de cifrado, tokens de sesión y códigos de verificación… y por eso es el estándar de oro para un sorteo justo.

Impredecible

Nadie — ni siquiera quien opera el servidor — puede anticipar el siguiente número. No existe "patrón" que descubrir.

Sin sesgo

Cada participante tiene exactamente la misma probabilidad. El algoritmo descarta resultados que introducirían sesgo matemático.

Entropía real

Se alimenta de ruido físico del sistema: tiempos de hardware, interrupciones y fuentes de entropía del sistema operativo.

Sin manos humanas

El resultado se calcula en un solo paso automático. No hay forma de "repetir hasta que salga el amigo".

#¿Cómo funciona en nuestros sorteos?

Se congela la lista de participantes

Solo entran inscripciones válidas (cuenta e Instagram únicos, sin descalificados). Cada persona participa exactamente una vez.

El sistema operativo entrega entropía

PHP pide aleatoriedad al kernel del servidor (getrandom() / /dev/urandom en Linux), que mezcla ruido físico impredecible del hardware.

Barajado Fisher–Yates

La lista completa se baraja con el algoritmo Fisher–Yates usando random_int(), el CSPRNG nativo de PHP. Es matemáticamente uniforme: todas las ordenaciones posibles son igual de probables.

Ganadores en un solo acto

Las primeras posiciones del barajado son los ganadores, del último premio al primero. Todo queda decidido en el mismo instante y se registra en la base de datos.

Revelación en vivo

La transmisión solo revela lo ya sorteado, uno a uno y con suspenso. El show es teatro; el resultado es matemática.

Este es el código real (simplificado) que ejecuta el sorteo:

// Fisher-Yates con random_int (CSPRNG):
// totalmente aleatorio, sin sesgo y sin repetidos.
for ($i = count($ids) - 1; $i > 0; $i--) {
    $j = random_int(0, $i);
    [$ids[$i], $ids[$j]] = [$ids[$j], $ids[$i]];
}

// Las primeras N posiciones son los ganadores
$ganadores = array_slice($ids, 0, 10);

¿Por qué Fisher–Yates? Es el algoritmo clásico (1938) para barajar sin sesgo: recorre la lista una vez e intercambia cada elemento con otro elegido al azar entre los que quedan. Combinado con un CSPRNG, garantiza que ningún participante tenga ventaja por su posición de inscripción, su nombre o cualquier otro factor. Además, random_int() usa muestreo por rechazo: descarta valores que producirían el famoso "sesgo de módulo" que sí afecta a generadores ingenuos.

#CSPRNG vs. un "random" común

PRNG común (rand, mt_rand)CSPRNG (random_int, random_bytes)
Predecibilidad Con algunos valores observados se puede reconstruir la secuencia completa. Computacionalmente imposible de predecir, incluso viendo resultados anteriores.
Semilla Suele derivar de la hora del sistema: quien conoce el momento puede replicarla. Entropía física del sistema operativo, re-sembrada constantemente.
Sesgo El uso ingenuo del operador módulo favorece a ciertos números. Distribución uniforme garantizada por muestreo por rechazo.
Uso apropiadoVideojuegos, simulaciones, pruebas — donde la seguridad no importa.Criptografía, tokens, contraseñas… y sorteos con premios reales.

#¿Quiénes confían en esta tecnología?

Los CSPRNG no son un invento nuestro: son infraestructura estándar de la industria, auditada durante décadas.

Cloudflare

Protege gran parte del tráfico de Internet y alimenta sus generadores con entropía física — famosamente, una pared de lámparas de lava filmada en su oficina de San Francisco (LavaRand).

Apple, Google y Microsoft

iOS, Android, macOS y Windows incluyen CSPRNG a nivel de sistema operativo. Cada vez que tu teléfono cifra un mensaje o genera una clave, usa exactamente este tipo de generador.

Banca y comercio electrónico

Los números de tarjetas virtuales, tokens de transferencia y códigos de verificación (OTP) que usa tu banco se generan con CSPRNG certificados bajo estándares como FIPS 140.

Loterías y juego regulado

Los sorteos electrónicos de loterías estatales y casinos online regulados usan RNG criptográficos auditados por laboratorios independientes como GLI (Gaming Laboratories International) o eCOGRA.

Videojuegos competitivos

Los sistemas de recompensas y emparejamiento de los grandes títulos online usan generadores seguros para que ningún jugador pueda explotar patrones.

Certificados TLS (el candado 🔒)

Cada conexión segura que abres — incluida esta página — negocia sus claves con números generados por CSPRNG. Sin ellos, Internet segura no existiría.

#Pruébalo tú mismo

Tu propio navegador trae un CSPRNG (crypto.getRandomValues). Este botón baraja 10 nombres de ejemplo con el mismo algoritmo Fisher–Yates de nuestro sorteo — ejecutándose en tu equipo, no en nuestro servidor.

¿Quieres verlo en acción?

Ir al sorteo en vivo