Generadores de números aleatorios

Programacion

La generación de números aleatorios siempre ha sido un reto. Si habéis estudiado los algoritmos que generan estos números veréis que, realmente, los números completamente aleatorios no existen cuando se generan por medio de una máquina. Sin embargo, esto no significa que sea fácil predecirlos, algo de lo que se encargan los algoritmos de generación de números aleatorios.

Generadores de números aleatorios

Un generador de números aleatorios o RNG es una aplicación o dispositivo físico que se utiliza para crear series de números que no guardan relación entre ellos. Estos algoritmos generan números partiendo de una semilla y de un número inicial para calcular los restos. Además, también se utiliza una constante multiplicativa y otra de suma.

  • S: Semilla o valor inicial.
  • A: Constante multiplicativa.
  • C: Constante aditiva.
  • M: Número utilizado para calcular los restos.

Todos los números anteriores deben ser mayores que cero y, además, la semilla, la constante multiplicativa y la constante aditiva deben ser menores que el número para calcular los restos. Como vemos, los número no son realmente aleatorios, puesto que partiendo de los mismos valores iniciales, se obtendrán siempre los mismos valores resultantes. Los valores resultantes tras la generación del primer número se utilizarán para generar el siguiente. De este modo, tarde o temprano se completará un ciclo, por lo que la serie pseudoaleatoria volverá a repetirse.

En ocasiones, se utilizan como valores iniciales algunos indicadores muy complejos como el ruido atmosférico o el ruido de algún componente eléctrico, haciendo que los números pseudoaleatorios pasen a convertirse en prácticamente aleatorios. Los casinos están cada vez más extendidos en el ámbito online y, además, los casinos también han llegado a nuestros móviles, por lo que todas las empresas que ofrecen juegos de azar deben pasar complejas pruebas.

Hoy en día, las principales plataformas de juego online son compatibles con la mayoría de sistemas operativos y navegadores (Internet Explorer, Chrome, Mozilla Firefox, Safari, etc.). Eso sí, todas las empresas que ofrecen juegos de azar deben pasar complejas pruebas antes de ser autorizados.

Aplicaciones en los videojuegos

Los números aleatorios se utilizan en infinidad de simulaciones. Sin ir más lejos, en los juegos de azar o en los videojuegos. Cuando jugamos a un juego cuyos niveles han sido generados proceduralmente, éstos se crean partiendo de una semilla que da lugar a diferentes estructuras y distribuciones del terreno. Sin embargo, se introducen multitud de factores que limitan la aleatoriedad para así obtener niveles que sean más jugables. Por ejemplo, si jugamos a un juego de estrategia o a uno de rol, veremos que los niveles siguen una estructura a pesar de ser todos diferentes entre sí en cada nueva partida.

Aplicaciones en los juegos de azar

En donde sí encontramos números totalmente aleatorios es en los juegos de azar. En los casinos se utilizan elementos físicos como pueden ser  las bolas de la ruleta. Cuando recreamos estos números aleatorios electrónicamente o mediante software, se deben obtener distribuciones de números muy parecidas. Podríamos pensar que estos RNGs se utilizan solamente en los casinos online, pero el caso es que cada vez se aplican con más frecuencia en casinos físicos. Los diferentes países y estados se encargan de validar estos algoritmos para verificar que no hacen trampa.

Los números aleatorios de los juegos de azar deben cumplir ciertas condiciones para ser considerados como justos para el jugador. Algunas de estas condiciones son las siguientes:

  • Los números resultantes no deben verse afectados por la cantidad o la envergadura de la apuesta.
  • Debe cumplirse un porcentaje mínimo de pagos. Este porcentaje suele oscilar entre el 83% y el 75%, dependiendo de la legislación de cada país.
  • No deben hacerse modificaciones en los algoritmos o en las máquinas sin que pasen por una profunda revisión. En general, los chips utilizados deben ser validados por la autoridad que legisla este tipo de juegos en cada país. En el caso de España, es la Dirección General de Ordenación del Juego.
  • Debe ser remotamente difícil predecir el resultado de las apuestas, incluso para los programadores de los chips.

Aplicaciones en el mundo real

Los algoritmos generadores de números aleatorios están en todas partes. Recientemente se han comenzado a utilizar en los aeropuertos para indicar a cada persona a qué línea de seguridad debe dirigirse.

Esto no se diferencia mucho de los algoritmos utilizados en los juegos de azar.

Auditorías de números aleatorios

En general, las comprobaciones de algoritmos y máquinas generadoras de números aleatorios suelen ser realizadas por consultoras externas, como ocurre en el caso de las empresas de juego. Estas empresas también se encargan de realizar auditorías. Estas son las tareas que suelen realizar:

  • Evaluaciones de generación de números aleatorios (RNG).
  • Evaluaciones de juego y matemáticas.
  • Verificación de pagos e informes estadísticos.
  • Evaluaciones de reparto y juego con terceros.
  • Evaluaciones de loterías y paridad.
  • Auditorías de juegos de cartas.
  • Tests de penetración y auditorías de seguridad.

Es muy importante verificar que las empresas que ofrecen juegos de azar cuentan con garantías y certificaciones, además de comprobar que son auditadas periódicamente.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”