Qué es realmente lanzar una moneda
Lanzar una moneda es el bit aleatorio original. Cara o cruz, 50/50, decidido en el tiempo que tarda una moneda en girar por el aire. La gente lleva zanjando discusiones y rompiendo empates así desde que los romanos lo llamaban navia aut caput —barco o cabeza— por los diseños de sus monedas de bronce. La matemática no ha cambiado desde entonces.
Lo que sí ha cambiado es que probablemente ya no llevas una moneda encima. Un lanzamiento digital tiene que simular el mismo 50/50 justo e impredecible sin que haya una moneda en la sala. Suena trivial. En su mayor parte no lo es, porque casi todo el software usa generadores de números aleatorios que no son realmente aleatorios: son secuencias que parecen aleatorias salvo si conoces la fórmula.
Este Lanzar Moneda utiliza crypto.getRandomValues(), el generador criptográficamente seguro del navegador. La misma fuente que usan los bancos para los tokens de sesión. Cada lanzamiento toma un byte fresco del pool de entropía del sistema operativo y lo reduce a un solo bit. Sin semilla, sin patrón, sin manera de predecir el siguiente resultado a partir de los anteriores. Tan justo como puede ser una moneda justa.
Cómo usar Lanzar Moneda
Abre Lanzar Moneda y pulsa lanzar. Eso es todo.
- Pulsa el botón de lanzar (o la barra espaciadora)
- Observa el resultado: cara o cruz
- Vuelve a pulsar para el siguiente lanzamiento: el contador lleva el total acumulado
- Reinicia el contador cuando quieras empezar de cero
El total acumulado es útil para quien tenga curiosidad por saber si los lanzamientos están realmente equilibrados. Tras 100 lanzamientos verás algo cercano a 50/50, pero probablemente no exactamente 50/50. Enseguida vemos por qué.
crypto.getRandomValues vs Math.random: por qué importa
JavaScript trae dos formas de obtener un número aleatorio, y no son equivalentes.
Math.random() es un generador pseudoaleatorio. Produce una secuencia determinista a partir de un estado interno oculto. La secuencia parece aleatoria y, para la mayoría de usos —barajar una animación, elegir un color para un gráfico— es suficiente. Pero no es impredecible. Dos páginas que ejecuten el mismo generador desde el mismo estado inicial producirían los mismos números "aleatorios". La salida también tiene sesgos sutiles que solo importan a gran escala.
crypto.getRandomValues() toma bytes del pool de entropía criptográficamente seguro del sistema operativo. En hardware moderno ese pool se alimenta de ruido térmico, movimientos del ratón, tiempos de paquetes de red y media docena de fuentes físicas más. No hay estado interno que se fugue ni secuencia que predecir. Es la misma fuente que usa el navegador cuando genera una clave TLS.
Para un lanzamiento de moneda, la diferencia rara vez importa en un único lanzamiento. Importa enormemente con millones de lanzamientos, que es el único contexto en el que se notaría un generador sesgado. Usamos crypto.getRandomValues() porque no hay razón para no hacerlo: ambas funciones tardan prácticamente lo mismo, y una de ellas te da una garantía de equidad verificable.
Si quieres comprobarlo, abre la consola del navegador en la página de Lanzar Moneda y ejecuta crypto.getRandomValues(new Uint8Array(1)). Obtendrás un número entre 0 y 255. Cogemos ese número, comprobamos si es par o impar (o equivalentemente, si el bit más bajo es 0 o 1), y ese único bit decide cara o cruz.
El problema de las rachas: por qué 10 lanzamientos rara vez parecen "aleatorios"
Un experimento que casi todo el mundo entiende mal. Lanza una moneda 10 veces. Apunta los resultados. Enséñaselos a un amigo. Pregúntale: "¿esto parece aleatorio?".
Si la secuencia es C X C X C C X C X X, la mayoría dirá que sí. Si es C C C C X C C X X X, la mayoría dirá que no: demasiadas caras seguidas, eso no puede ser aleatorio. Ambas secuencias son igual de probables. Ambas tienen la misma proporción global de caras y cruces. La segunda solo parece menos aleatoria porque los humanos subestiman lo a menudo que aparecen rachas en datos realmente aleatorios.
Ejemplo real. Lanzamos esta moneda diez veces. Esta es la secuencia que salió:
C, C, X, C, C, C, X, X, X, C
Seis caras, cuatro cruces. Racha de caras más larga: 3 seguidas (lanzamientos 4–6). Racha de cruces más larga: 3 seguidas (lanzamientos 7–9).
Parece amañado, ¿verdad? No lo está. La probabilidad de obtener al menos una racha de 3 o más en 10 lanzamientos de una moneda justa es de aproximadamente el 82%. La mayoría de secuencias de diez lanzamientos contienen una racha así de larga. Si no la ves, ese sí es el resultado inusual.
Estas son las probabilidades aproximadas de ver distintas longitudes máximas de racha en 10 lanzamientos:
| Racha más larga de un lado en 10 lanzamientos | Probabilidad aproximada | Cómo se ve |
|---|---|---|
| 1 seguido (alternancia perfecta, como C X C X C X C X C X) | ≈ 0,2% | Tan improbable que casi nunca pasa con una moneda justa |
| Como mucho 2 seguidos | ≈ 7% | Raro; al ojo humano parecería "muy aleatorio" |
| Como mucho 3 seguidos | ≈ 38% | Frecuente: la típica secuencia que "parece aleatoria" |
| Al menos 4 seguidos alguna vez | ≈ 45% | Casi a cara o cruz; al humano le suena "sesgada" sin serlo |
| Al menos 5 seguidos alguna vez | ≈ 22% | Aproximadamente 1 de cada 5 secuencias de 10 lanzamientos; parece amañada |
| Al menos 6 seguidos alguna vez | ≈ 11% | 1 de cada 9; sorprendentemente común |
La lección: las rachas largas no son prueba de una moneda rota. Son prueba de una moneda normal. Si lanzaras 100 veces y nunca obtuvieras una racha de 5 o más en ninguno de los dos lados, ese sí sería el resultado sorprendente.
La falacia del jugador
Sacas caras cuatro veces seguidas. ¿Qué probabilidad hay de que el siguiente sea cruz?
50%. La misma que en cualquier otro lanzamiento. La moneda no recuerda los resultados anteriores. No te "debe" una cruz. Esto es la falacia del jugador —la intuición de que los resultados aleatorios pasados influyen en los futuros— y es uno de los errores cognitivos más caros que comete el ser humano. Los casinos viven de ello.
Cada lanzamiento es independiente. La probabilidad de CCCCC (cinco caras seguidas) al inicio de una secuencia es 1/32. Pero la probabilidad de sacar otra cara después de haber sacado CCCC sigue siendo 1/2. Lo anterior ya ocurrió. No influye en el siguiente.
Esto importa para cualquier uso honesto de un lanzamiento. Si usas lanzamientos para decidir —¿pedimos pizza o sushi?— no sigas lanzando hasta obtener la respuesta que querías. Eso anula todo el sentido de dejar que el azar decida. Lanza una vez y acepta el resultado.
Para qué se usa realmente lanzar una moneda
Lanzar Moneda se usa para mucho más que romper empates. Algunos casos habituales:
- Decidir entre dos opciones. Pizza o sushi. Película A o película B. El uso clásico y aún el mejor. Dos resultados, peso igual, sin darle vueltas.
- Quitar tu propio sesgo en una elección difícil. Si lanzas la moneda y al ver el resultado sientes decepción, has aprendido algo: ya sabías qué opción querías. El lanzamiento saca a la luz preferencias que no querías reconocer.
- Zanjar juegos y deportes. Saque inicial en fútbol americano, primer servicio en tenis, primer pick en un draft. Las monedas deciden quién va primero en casi cualquier estructura competitiva creada antes de los ordenadores.
- Muestreo aleatorio. "Lanza una moneda: si sale cara, incluye esta fila en la muestra". Forma rápida de tomar una muestra aleatoria del 50% de cualquier cosa.
- Enseñar probabilidad. El lanzamiento es el ejemplo de aula más limpio de ensayos independientes, valor esperado y ley de los grandes números. Haz cien y mira cómo converge la proporción.
Para decisiones con más de dos opciones, querrás otra herramienta. El Lanzador de Dados gestiona 4, 6, 8 o 20 resultados. El Selector Aleatorio de Nombres elige un elemento de una lista. El Aleatorizador de Listas baraja toda una lista en orden aleatorio.
¿Y el "al mejor de tres"?
Si un único lanzamiento te parece demasiada varianza, el "al mejor de tres" reduce el ruido. Tres lanzamientos, gana quien llegue antes a 2. La probabilidad de ganar de cada lado sigue siendo del 50% —la moneda subyacente es la misma—, pero el abanico de resultados posibles se estrecha.
La matemática: "al mejor de tres" es simplemente "el primero en sacar 2 caras o 2 cruces en una serie de lanzamientos independientes". Gana quien obtenga el segundo antes. La mayoría de series acaban en 2 lanzamientos (probabilidad 50%) y el resto en 3 (probabilidad 50%).
Ejemplo: tu amigo y tú queréis el último trozo de pizza. Lanzamiento único: aceptas el resultado, pero quizá refunfuñes. Al mejor de tres parece más justo porque no se puede perder en el primer lanzamiento. El resultado esperado es idéntico; la sensación de justicia es mayor. Usa el que prefiera tu grupo: ambos son matemáticamente correctos.
Otras herramientas de azar
Lanzar Moneda es el caso más simple de "necesito un resultado aleatorio ya". Microapps relacionadas para casos más ricos:
- Lanzador de Dados: para más de dos resultados. Lanza cualquier número de dados de 2, 4, 6, 8, 10, 12, 20 o 100 caras.
- Aleatorizador de Listas: pega una lista y la obtienes barajada. Sirve para mezclar el orden de presentaciones, colas o cualquier cosa que necesite secuenciarse con justicia.
- Selector Aleatorio de Nombres: elige un elemento de una lista. El caso "elige un ganador".
- Generador de Equipos: divide una lista de personas en equipos aleatorios equilibrados. Útil para deportes, grupos de estudio o dividir una clase.
- Generador de Contraseñas: usa la misma fuente de aleatoriedad criptográfica para una salida con calidad de seguridad real.
Preguntas frecuentes
¿Lanzar Moneda es realmente 50/50?
Sí. Cada lanzamiento toma un byte aleatorio de crypto.getRandomValues() y comprueba si es par o impar. Es el RNG criptográficamente seguro del navegador, el mismo que se usa para generar claves de sesión TLS. El sesgo sería medible con millones de lanzamientos; aquí no lo encontrarás.
He sacado cara 7 veces seguidas. ¿Está rota?
No. La probabilidad de cualquier secuencia concreta de 7 lanzamientos (incluida CCCCCCC) es 1/128, alrededor del 0,8%. Si lanzas 100 veces, probablemente verás una racha así de larga en algún punto. Las rachas no significan que la moneda esté sesgada; significan que es normal.
¿Por qué mi total acumulado se aleja del 50/50?
Las secuencias aleatorias tienen lo que los estadísticos llaman deriva de paseo aleatorio. Tras 100 lanzamientos el recuento no será 50/50: estará en cifras como 40 y pico frente a 50 y pico. Tras 10.000 lanzamientos estará mucho más cerca en términos absolutos (digamos 5.021 vs 4.979), pero el hueco absoluto puede ser aún de decenas. La convergencia es en proporción, no en cuenta absoluta. Esa es la ley de los grandes números y es lenta.
¿Puedo lanzar una moneda con sesgo (60/40 o 70/30)?
Lanzar Moneda es solo "justa" por diseño. Para elecciones aleatorias con peso, usa el Lanzador de Dados con un dado mayor y define tus rangos (por ejemplo: lanza un d10; 1-6 = opción A, 7-10 = opción B es un 60/40). Meter "moneda sesgada" en este lanzador enturbiaría lo que hace. Un trabajo por Microapp.
¿Lanzar Moneda funciona sin conexión?
Sí, una vez cargada la página. El generador aleatorio se ejecuta enteramente en tu navegador; nada de tu lanzamiento sale del dispositivo. Sin red, sin servidor, sin tracking. Ábrelo una vez, cierra el wifi y sigue lanzando.
¿Puedo usarlo para un cuadro de torneo o una decisión importante?
La aleatoriedad es justa. Para decisiones con apuestas altas donde el perdedor pueda discutir el resultado, considera hacer el lanzamiento con un testigo viendo la pantalla, o haz una captura del resultado con marca de tiempo visible. La moneda no miente, pero contar con prueba social de que el lanzamiento ocurrió puede importar cuando el resultado tiene consecuencias.
¿Por qué no usar una moneda física?
Úsala si la tienes. Las monedas físicas son justas, con un pequeño matiz: hay investigación que sugiere que las monedas reales caen muy ligeramente más a menudo del mismo lado con el que empezaron (alrededor de 51/49) por cómo se bambolean en el aire. Esta moneda no tiene "lado inicial", así que es un pelín más justa que una moneda física. Pero no notarás la diferencia en 10 lanzamientos.