Ruleta de Decisiones
Deja que la ruleta decida por ti, di adiós a la indecisión
Aún no hay registros — ¡hazlo girar!
¿Qué es una Ruleta de Decisiones?
Una Ruleta de Decisiones es una herramienta divertida que te ayuda a tomar decisiones. Cuando no puedas decidir entre múltiples opciones, ingrésalas todas en la ruleta, haz clic en girar y deja que el azar decida por ti.
Casos de uso comunes:
- ¿Qué comer hoy? Añade tus opciones de restaurantes a la ruleta
- ¿A dónde ir este fin de semana? Añade destinos a la ruleta
- ¿Qué película ver? Añade opciones de películas a la ruleta
- Decisiones de actividades de equipo, selección justa e imparcial
Cuando se usa con otras personas, entradas, supuestos y resultado esperado deben quedar claros para evitar malinterpretaciones.
Cómo usar
Cómo usar
- Introduce el nombre de una opción en el campo de entrada y pulsa Intro o haz clic en Añadir
- Añade varias opciones (hasta 15), cada una con un máximo de 20 caracteres
- Haz clic en el botón central 'GIRAR'; la rueda comienza a girar
- Espera a que la rueda se detenga y consulta el resultado seleccionado al azar
Consejos de imparcialidad
- Mantén las opciones cortas y comparables para que la rueda sea fácil de leer para todos antes de girar.
- Para decisiones importantes, acuerda la lista de opciones antes de girar y evita cambiar entradas tras ver un resultado desfavorable.
Casos de uso
Principio técnico
La ruleta es un dibujo Canvas 2D combinado con una selección aleatoria determinista. Cada segmento se renderiza con ctx.beginPath(); ctx.moveTo(cx, cy); ctx.arc(cx, cy, r, startAngle, endAngle); ctx.fill(), donde N opciones iguales toman un arco de 2π/N radianes cada una; quince segmentos equivalen a 24° de arco cada uno, lo cual también explica por qué la entrada está limitada a 15 para mantener las etiquetas legibles. El segmento ganador se determina ANTES de la animación: se extrae un entero sin signo de 32 bits con crypto.getRandomValues(new Uint32Array(1))[0], se reduce módulo N, y ese entero es la respuesta. La animación calcula entonces una rotación objetivo de fullSpins × 2π + (2π − winnerIndex × sliceAngle − sliceAngle/2) de modo que el puntero en la parte superior del canvas termina apuntando al centro del segmento elegido, y se interpola hacia él dentro de requestAnimationFrame usando una curva de suavizado como easeOutCubic, f(t) = 1 − (1−t)³, o easeOutBack para el ligero exceso que simula una ruleta física desacelerándose. crypto.getRandomValues es el CSPRNG de Web Crypto (especificado en la Web Crypto API), sembrado desde el pool de entropía del SO, por lo que, a diferencia de Math.random, la selección no puede predecirse leyendo el estado de la página. Las variantes con pesos construyen un array de probabilidad acumulada de longitud N y buscan binariamente la extracción aleatoria en O(log N). Las salidas son enteramente visuales y efímeras; no se registra nada, por lo que cualquier rastro de auditoría (marca de tiempo, lista de opciones, captura de pantalla) debe capturarse externamente antes de actualizar la página.
- Renderizado Canvas: cada segmento es ctx.arc(cx, cy, r, startAngle, endAngle) con sliceAngle = 2π / N; 15 opciones dan 24° por segmento, que es el límite práctico de legibilidad.
- La selección del ganador usa crypto.getRandomValues(new Uint32Array(1))[0] % N, el CSPRNG de Web Crypto sembrado desde la entropía del SO, adecuado para sorteos justos de un solo uso pero NO para loterías reproducibles (no hay rastro de auditoría).
- La animación se ejecuta en requestAnimationFrame a la frecuencia de refresco de la pantalla (típicamente 60 Hz) con easeOutCubic f(t) = 1 − (1−t)³ o easeOutBack para un ligero exceso; la curva es cosmética, el ganador ya está elegido.
- La rotación final es targetRotation = fullSpins × 2π + (2π − winnerIndex × sliceAngle − sliceAngle/2) para que el puntero superior caiga en el centro del segmento, no en su borde.
- El modo de opciones ponderadas construye un array de suma de prefijos de pesos y usa búsqueda binaria para mapear un número aleatorio uniforme a un segmento en O(log N), equivalente a muestreo por inversa de la CDF.
- El sesgo del módulo es despreciable cuando N ≤ 15 y la extracción tiene un rango de 2³² valores (sesgo ≈ N / (2 × 2³²) ≈ 1,7×10⁻⁹), por lo que no se necesita un bucle de muestreo por rechazo.
- Cada giro es i.i.d.; los giros consecutivos pueden repetir la misma opción y eso es un comportamiento uniforme correcto, no un error; la deduplicación entre giros requiere un registro externo.
Ejemplos
Decisión de almuerzo
Opciones: Pizza, Sushi, Hamburguesas, Tacos, Ensalada → Girar → Resultado: SushiActividad de equipo
Opciones: Bolos, Karaoke, Escape Room, Minigolf → Girar → Resultado: Escape RoomNoche de cine
Opciones: Acción, Comedia, Terror, Romance, Ciencia ficción → Girar → Resultado: ComediaPreguntas frecuentes
¿El giro de la ruleta es realmente aleatorio?
Sí. El segmento ganador se elige con crypto.getRandomValues y luego la ruleta se anima para detenerse en él. El giro visual es solo espectáculo: el resultado se decide antes. Cada giro es independiente de los anteriores.
¿Todos los segmentos tienen la misma probabilidad?
Sí. Cada opción ocupa una porción del mismo tamaño y todas las porciones tienen la misma probabilidad. No hay un modo ponderado ni sesgado: todas las opciones tienen la misma posibilidad de salir.
¿La animación del giro influye en el resultado?
No. La animación es decorativa: primero se calcula el resultado y luego la ruleta gira para mostrarlo. Aunque detengas la animación antes de tiempo, el segmento elegido es el mismo.
¿Puedo guardar la ruleta entre sesiones?
No. Las opciones se mantienen solo durante la sesión actual. Si cierras la pestaña o recargas, pierdes la lista. Cópiala antes de cerrar si vas a volver a usarla.
¿Debería usarla para tomar decisiones importantes?
Úsala para elecciones de grupo de poca trascendencia (qué comer, orden de presentaciones, sorteos) en las que cualquier opción sea aceptable y la aleatoriedad visible evite roces. No delegues en ella decisiones cuyas consecuencias varíen mucho de una opción a otra: la ruleta no puede sopesar pros y contras.
¿Por qué a veces sale la misma opción dos veces seguidas?
Cada giro es independiente. Con tres opciones, la probabilidad de que salga la misma dos veces seguidas es 1/3 ≈ 33 %. Con diez opciones, es del 10 %. La repetición sorprende, pero es matemáticamente esperable en una selección verdaderamente aleatoria.
¿Se sube mi lista de opciones a algún servidor?
No. La ruleta se ejecuta por completo en tu navegador. Las opciones se guardan en local si así lo eliges; no se transmite nada.