Lanzar Moneda
crypto.getRandomValues · 50/50 · en navegador
crypto.getRandomValues — el RNG criptográficamente seguro del navegador — antes de que se lance la moneda, así que el lanzamiento es puramente cosmético y el resultado es demostrablemente 50 / 50. Toca el botón, cambia las etiquetas o lanza un millar de una vez por lotes.Por qué el resultado es justo
El resultado de una moneda aquí es un bit extraído de crypto.getRandomValues: la página lee un entero sin signo de 32 bits nuevo y trata su bit bajo como «cara» (0) o «cruz» (1). En cualquier navegador moderno ese entero proviene del pool de entropía criptográfico del sistema operativo — el mismo usado para generar claves de sesión TLS. Como cada bit es independiente y uniformemente distribuido, cada lanzamiento es un verdadero 50 / 50 sin memoria de los resultados previos.
La animación es cosmética
La decisión cara/cruz se toma antes de que la moneda empiece a girar — la cantidad de rotación y la orientación final se eligen para que la moneda aterrice con la cara predeterminada arriba. Así que la animación es divertida de ver pero no puede afectar el resultado, y el resultado no puede ser sesgado por ninguna interacción con el lanzamiento (no hay ningún truco al pulsar el botón).
Modo batch y la ley de los grandes números
Pulsa ×100 o ×1000 y se lanza un lote entero de una vez. La página anima una sola moneda representativa (mostrando el último resultado) y renderiza el resto como pequeñas chapas debajo. Las estadísticas agregadas (total, % cara, racha más larga) se actualizan en toda la sesión, así puedes ver la cuota de caras converger al 50% conforme N crece, y observar la ocasional racha improbable — las rachas de 10+ del mismo lado sí ocurren y no son un bug.
Personalizar las etiquetas
Los dos campos de texto controlan lo que aparece en las caras de cara y cruz. Úsalos para decisiones binarias donde «cara/cruz» no es la encuadre correcto — Sí / No, Quedarse / Irse, Burrito / Pizza. Las etiquetas largas se reducen automáticamente para encajar en la cara. El panel de estadísticas se reetiqueta para coincidir.
Privacidad
Ningún lanzamiento se envía nunca fuera de la página. El historial y las estadísticas viven solo en la memoria de esta pestaña y desaparecen al cerrarla (no hay persistencia localStorage aquí). La página no hace solicitudes de red tras la carga estática inicial y no hay scripts de analítica.