Por qué Fisher-Yates importa en el poker verificablemente justo
Cuando un jugador pregunta si un barajado online es justo, la respuesta no debería ser "las cartas parecen mezcladas". Un barajado justo significa que cada orden posible de un mazo de 52 cartas tiene la misma oportunidad y que la plataforma no puede elegir un orden mejor después de ver información útil.
Fisher-Yates es una forma clara de explicar ese objetivo. El algoritmo toma una lista, elige al azar entre las posiciones que quedan, intercambia y fija una parte del resultado. Si cada elección aleatoria es imparcial, produce una permutación imparcial. La descripción pública del algoritmo lo presenta como un método para barajar secuencias finitas con permutaciones igualmente probables cuando las elecciones no tienen sesgo: Fisher-Yates shuffle.
Resuelve la justicia del orden del mazo
Lo importante no es que Fisher-Yates suene técnico. Lo importante es que trata el mazo como un problema de permutaciones. En cada paso elige dentro de la parte que todavía no está fijada, por lo que no favorece de forma natural ciertas posiciones o combinaciones.
Esto conecta con qué tan aleatorio es un barajado. En poker, la aleatoriedad no es una sensación visual; es una afirmación de probabilidad. Si algunos órdenes son más fáciles de producir que otros, el barajado tiene sesgo aunque nadie lo note mirando unas pocas manos.
La fuente aleatoria sigue siendo crítica
Fisher-Yates no crea aleatoriedad confiable por sí solo. Consume números aleatorios. Si esos números son predecibles, se reutilizan, nacen de una semilla débil o se eligen después de ver información del juego, el barajado puede dejar de ser justo.
NIST SP 800-90A Rev. 1 describe mecanismos de generación determinista de bits aleatorios basados en funciones hash, HMAC o cifrados de bloque: NIST SP 800-90A. Nombrar un estándar no basta. Un sistema serio debe explicar de dónde viene la aleatoriedad, cuándo queda comprometida y cómo se verifica después.
Fisher-Yates es el procedimiento de barajar; la fuente aleatoria es la mano que lo mueve. Si esa mano es predecible o controlada, el procedimiento limpio no salva la partida.
El muestreo del rango no debe tener sesgo
También hay una trampa de implementación. En cada paso hace falta elegir un entero uniforme dentro del rango actual. Si el programa toma un número grande y aplica un módulo simple, algunos valores pueden recibir una probabilidad ligeramente mayor cuando el rango no divide exactamente el espacio de números.
El sesgo puede parecer pequeño, pero una plataforma de poker procesa muchas manos. Por eso conviene usar muestreo sin sesgo y dejar trazas que permitan revisar cómo los bytes aleatorios se convirtieron en índices de intercambio. Este punto complementa la entropía criptográfica en el barajado de poker.
La verificación necesita un transcript
Una plataforma puede decir "usamos Fisher-Yates" y aun así no dar nada verificable. El poker justamente verificable necesita pruebas: un compromiso antes de conocer el mazo, una revelación posterior de la semilla o de las entradas compartidas, una forma determinista de derivar cada índice y un mazo final que cualquiera pueda recalcular.
Ese transcript vale más que un eslogan. Permite a un jugador, desarrollador o investigador repetir los pasos y comparar el resultado con la mano real. El flujo práctico se parece a verificar un barajado paso a paso.
Lo que Fisher-Yates no arregla
Fisher-Yates trata la justicia del orden de las cartas. No detiene colusión entre jugadores, bots, cuentas compartidas, asistencia en tiempo real, pantalla compartida ni dispositivos comprometidos. Esos riesgos requieren antitrampas, reportes, seguridad de cuenta y diseño responsable.
La mejor pregunta no es solo "usa Fisher-Yates". Pregunta si la fuente aleatoria queda comprometida antes de jugar, si el muestreo del rango es imparcial, si el transcript puede repetirse y si la plataforma reconoce los riesgos fuera del barajado. El nombre del algoritmo ayuda; el registro verificable es lo que da confianza real al jugador.