Generación aleatoria por computación

generación aleatoria

En la Home hablábamos de que una de las ventajas de jugar con dados virtuales era que las probabilidades de hacer trampa eran totalmente nulas.

Y es que en su versión física puede existir el problema de que, por la forma de tirar el dado, puede dar origen a sospechas. Aunque admitimos que se necesita o muchísima habilidad o un no saber perder preocupante y que hacer salir el número deseado es prácticamente imposible…

Generación completamente aleatoria

¿Y si juegas por casualidad con alguno de los desarrolladores de un dado virtual? No hay lugar a la sospecha. Ni siquiera los creadores pueden predecir (ni intuir) al 100% cuál será el próximo número en salir. Por lo menos aquí…

¿Cómo funciona?

Existen 2 métodos principales para la generación de números aleatorios:

  • Verdadero: Este sistema en realidad mide algún fenómeno físico y después distribuye los posibles sesgos en el sistema de medición. El problema es que este sistema es algo lento, por eso no es el que nos interesa (Ningún juego de azar empleará este sistema).
  • Generación de números pseudoaleatorios: En este caso el resultado se obtiene a partir de algoritmos cuyo origen es un valor inicial que se conoce como semilla. Es el sistema que emplean todos los dados virtuales y por eso vamos a explicarlo más detalladamente.

Generación de números pseudoaleatorios

Un generador de números psudoaleatorio (PRNG) es un algoritmo que muestra una serie de cifras a partir de un valor inicial (semilla). Dependiendo del diseño, las combinaciones serán más complejas o más simples.

Entonces, no es 100% aleatorio

No, por eso hemos remarcado que ni siquiera los creadores puedes con un 100% de seguridad cuál va a ser el resultado de la siguiente tirada, pero es verdad que hay una cosa… Cada vez que se empiece por la misma semilla, la secuencia será la misma...

No empieces a desconfiar de un dado online pensando que al final repetirán el mismo orden de resultados cada espacio de tiempo relativamente corto… Pueden haber tantas semillas como quieran los desarrolladores y las series pueden ser tan largas que es científicamente imposible recordar cuál es el seguimiento de estas.

Además, aquí intervienen (o pueden intervenir) otras variables externas, como:

  • Lo que marque el reloj en el momento de lanzar el dado: una de las constantes puede ser el valor que marque el minutero del PC
  • La fecha.
  • El píxel donde pinche el jugador.
  • El número de jugadores.
  • etc.

Ese es el motivo por lo que se les denomina pseudoaleatorios, porque en realidad no tienen la naturalidad y la imprevisibilidad que sí que tiene un dado. Pero la verdad es que su dinámica se acerca bastante a la perfección, sobre todo si está diseñada para ser lo más justa posible.

¿Se puede saber si las pruebas de aleatoriedad son fiables?

Para saber si una web o un dado virtual son fiables se hacen varias pruebas estadísticas pero no hay que admitir que estos estudios tampoco son del todo concluyentes. Algunas de las formas de comprobar las secuencias es:

  • Comprobar si alguno de los números sale demasiado o por contra aparece mucho menos que los demás.
  • Comprobar las secuencias de números seguidos (4,5,6…) durante varias series y secuencias.

Páginas como Random Sanity Project son una buena fuente para hacer comprobaciones gratuitas. ¿Te fías de nosotros? comprueba nuestras secuencias en tu web y tendrás la certeza de que nuestro dado virtual es uno de los menos previsibles de Internet.

Procesos de generación

Ya hemos dicho que el azar en este tipo de juegos online viene diseñado por un equipo de desarrolladores que buscarán que los órdenes secuenciales sean más o menos extensos e impredecibles…

Dentro de una generación pseudoaleatoria existen 4 métodos, aunque no todos ofrecen las mismas garantías ni son igual de aptos para según qué propósito.

  • Por seres humanos: Poco usada, sobre todo para dados virtuales y demás juegos de azar. Los resultados son ofrecidos después de un número X de entradas de otros usuarios.
  • Generación de una distribución de probabilidad. Implican la transformación de un dígito al azar. Existen 2 métodos:
    • Inversión: implica la integración hasta un área mayor o igual que el resultado aleatorio
    • Aceptación-rechazo: consiste en tomar un valor X y probar si su función es mayor que el valor Y.

Estos dos casos que acabamos de mencionar no nos importan, pues ningún dado virtual se basa en estos procesos.

  • Método físico: está basado en un fenómeno físico (atómico o subatómico) aleatorio y su imprevisibilidad puede obedecer a las leyes de la mecánica cuántica. Para la obtención de resultados se basan en algunos parámetros como la desintegración radiactiva, el ruido térmico, el ruido de disparo y demás fuentes de entropía. Hay que anotar que este método es algo lento y tampoco es el más apropiado.
  • Método computacional: Resumiendo, emplean el sistema que llevamos exponiendo casi todo este texto. Genera los resultados a partir de algoritmos más o menos complejos. Lo malo, que en realidad no es tan imprevisible como una fuente de entropía.

¿Qué es entropía?

Al final, la totalidad de los procesos informáticos están de alguna manera cifrados (para la propia seguridad de las webs) y para este propósito los desarrolladores se sirven de la criptografía que a su vez emplea datos aleatorios.

Estos datos son recogidos a partir de fuentes de hardware (como los movimientos del mouse) o del comportamiento del usuario.

Copyrigth 2020, Code