ToolActToolAct

Roue de Décision

Laissez la roue décider pour vous, adieu l'indécision

Liste des Options8/15
🍕 吃火锅
🎮 打游戏
📺 追剧
📚 看书
🚶 散步
🛌 睡觉
🎵 听音乐
🧹 做家务
Historique des gains

Aucun enregistrement — lancez la roue !

Qu'est-ce qu'une Roue de Décision ?

La roue de décision choisit aléatoirement une option dans une liste et transforme un petit choix en processus visible et partagé. Elle sert en classe, activités d’équipe, choix de repas, ordre de présentation, petits tirages, brainstorming et situations où plusieurs options sont acceptables. Son intérêt est de réduire la fatigue décisionnelle et de rendre la sélection transparente. Elle ne remplace pas le jugement lorsque les options ont des risques, coûts, règles d’équité ou responsabilités différents. Pour des tirages sérieux, liste des participants, pondération, exclusions et traçabilité doivent être définies avant de lancer la roue afin que le résultat reste explicable. Elle convient surtout aux décisions à faible enjeu.

Comment utiliser

Comment utiliser

  1. Saisissez un nom d'option dans la zone de saisie, appuyez sur Entrée ou cliquez sur Ajouter
  2. Ajoutez plusieurs options (jusqu'à 15), chaque option limitée à 20 caractères
  3. Cliquez sur le bouton central « TOURNER », la roue commence à tourner
  4. Attendez que la roue s'arrête pour voir le résultat sélectionné au hasard

Conseils d'équité

  • Gardez les options courtes et comparables pour que la roue soit facilement lisible par tous avant de tourner.
  • Pour les décisions importantes, convenez de la liste d'options avant de tourner et évitez de modifier les entrées après avoir obtenu un résultat défavorable.

Cas d’utilisation

Tourner une roue visible pour des choix de groupeAjoutez les options une par une, appuyez sur Entrée pour un ajout rapide et tournez la roue canvas lorsqu’une classe, une réunion, un stream ou une décision familiale nécessite un tirage aléatoire transparent. Le résultat est déterminé avant le démarrage de l’animation grâce à crypto.getRandomValues ; la courbe de décélération est donc purement décorative et le même seed rejoué hors ligne atterrirait sur le même segment. Utilisez cela pour préparer un tour d’essai reproductible avant le passage en direct.
Limiter la liste de choix pour une lecture aiséeLa roue limite les entrées à 15 et tronque le texte long sur les segments, ce qui la rend plus adaptée aux noms, tâches, sujets, récompenses, corvées ou courts choix de restaurants qu’aux longues descriptions. Avec deux entrées, la roue équivaut fonctionnellement à un lancer de pièce, tandis que quinze segments ne couvrent chacun que 24 degrés d’arc ; les libellés de plus de quelques mots deviennent donc difficiles à lire. Gardez les options suffisamment courtes pour que le public puisse les lire pendant la rotation.
Réinitialiser entre des décisions sans rapportUtilisez la réinitialisation ou rechargez les options par défaut avant un nouveau tour pour que les anciennes entrées, couleurs, rotation et résultat précédent ne confondent pas le prochain choix. Chaque tirage prélève un résultat indépendant et identiquement distribué dans l’ensemble des segments restants ; les choix consécutifs peuvent donc absolument se répéter, et c’est un comportement uniforme correct, pas un bug. Définissez la liste des participants et les règles avant de l’utiliser pour quoi que ce soit de public, car la roue ne conserve aucune trace des gagnants précédents.
Attribuer des couleurs aux segments pour une lecture en streamAssignez des couleurs de segments contrastées pour les présentations, les cours ou les streams afin que le public puisse suivre sur quelle option la roue atterrit sans deviner à partir de libellés tronqués. Alterner des segments vifs et atténués aide aussi la position finale à se démarquer lorsque la roue ralentit, et associer la couleur la plus vive au libellé le plus susceptible d’être mal lu élimine une catégorie d’erreurs à l’écran avant qu’elles ne surviennent. Testez la mise en page à la taille d’écran que verra votre public, car les streams mobiles recadrent souvent les bords de la roue.
Documenter les règles avant un tirage ou une loterieLorsqu’un vrai prix, une attribution de service ou une sélection de participants est en jeu, notez la liste d’entrées, les exclusions et la date avant de tourner pour que le résultat puisse être expliqué a posteriori. Capturez la liste des options, l’horodatage du tirage et une capture d’écran du segment final, car la roue ne conserve pas de piste d’audit et une reconstruction ultérieure de la même liste ne reproduira pas le même tirage. Traitez la capture d’écran comme le reçu lorsque la question « pourquoi ce nom est-il sorti ? » apparaît le lendemain.

Principe technique

La roue est un dessin Canvas 2D combiné à un tirage aléatoire déterministe. Chaque segment est rendu avec ctx.beginPath(); ctx.moveTo(cx, cy); ctx.arc(cx, cy, r, startAngle, endAngle); ctx.fill() où N options égales occupent chacune un arc de 2π/N radians — quinze segments donnent donc 24° d'arc chacun, ce qui explique aussi que la saisie soit limitée à 15 pour garder les libellés lisibles. Le segment gagnant est déterminé AVANT l'animation : un entier non signé 32 bits est tiré avec crypto.getRandomValues(new Uint32Array(1))[0], réduit modulo N, et cet entier constitue la réponse. L'animation calcule ensuite une rotation cible de fullSpins × 2π + (2π − winnerIndex × sliceAngle − sliceAngle/2) pour que le pointeur en haut du canvas se retrouve aligné sur le centre du segment choisi, puis effectue une interpolation dans requestAnimationFrame avec une courbe d'assouplissement telle que easeOutCubic, f(t) = 1 − (1−t)³, ou easeOutBack pour le léger dépassement qui imite une roue physique ralentissant. crypto.getRandomValues est le CSPRNG de Web Crypto (spécifié dans l'API Web Crypto), alimenté par le pool d'entropie du système, donc contrairement à Math.random le tirage ne peut pas être prédit en lisant l'état de la page. Les variantes pondérées construisent un tableau de probabilités cumulées de longueur N et effectuent une recherche binaire du tirage aléatoire en O(log N). Les sorties sont entièrement visuelles et éphémères — rien n'est journalisé, donc toute piste d'audit (horodatage, liste d'options, capture d'écran) doit être saisie en externe avant le rafraîchissement de la page.

  • Rendu Canvas : chaque segment est ctx.arc(cx, cy, r, startAngle, endAngle) avec sliceAngle = 2π / N — 15 options donnent 24° par segment, ce qui est le plafond pratique de lisibilité.
  • Le tirage du gagnant utilise crypto.getRandomValues(new Uint32Array(1))[0] % N — CSPRNG Web Crypto, alimenté par l'entropie du système, adapté aux tirages uniques équitables mais PAS aux loteries reproductibles (pas de piste d'audit).
  • L'animation s'exécute dans requestAnimationFrame au taux de rafraîchissement de l'écran (typiquement 60 Hz) avec easeOutCubic f(t) = 1 − (1−t)³ ou easeOutBack pour un léger dépassement — la courbe est cosmétique, le gagnant est déjà choisi.
  • La rotation finale est targetRotation = fullSpins × 2π + (2π − winnerIndex × sliceAngle − sliceAngle/2) pour que le pointeur supérieur atterrisse sur le centre du segment, pas sur son bord.
  • Le mode options pondérées construit un tableau de sommes préfixées des poids et utilise la recherche binaire pour mapper un nombre uniforme aléatoire à un segment en O(log N) — équivalent à un échantillonnage par inverse-CDF.
  • Le biais de modulo est négligeable lorsque N ≤ 15 et que le tirage couvre 2³² valeurs (biais ≈ N / (2 × 2³²) ≈ 1,7×10⁻⁹), donc aucune boucle de rejet-échantillonnage n'est nécessaire.
  • Chaque tour est i.i.d. — des tours consécutifs peuvent répéter la même option et c'est un comportement uniforme correct, pas un bug ; la déduplication entre tours nécessite un enregistrement externe.

Exemples

Choix du déjeuner

Options : Pizza, Sushi, Burgers, Tacos, Salade → Tourner → Résultat : Sushi

Activité d'équipe

Options : Bowling, Karaoké, Escape Room, Mini Golf → Tourner → Résultat : Escape Room

Soirée cinéma

Options : Action, Comédie, Horreur, Romance, Sci-Fi → Tourner → Résultat : Comédie

FAQ

La rotation de la roue est-elle vraiment aléatoire ?

Oui. Le segment retenu est tiré par crypto.getRandomValues, puis la roue s'anime jusqu'à atterrir dessus. La rotation visuelle n'est que de la mise en scène — le résultat est décidé en amont. Chaque tirage est indépendant des précédents.

Tous les segments ont-ils la même probabilité ?

Oui. Chaque option occupe une part de taille égale et chaque part a la même probabilité. Il n'existe pas de mode pondéré ou biaisé — toutes les options ont les mêmes chances d'être sélectionnées.

L'animation de la rotation influence-t-elle le résultat ?

Non. L'animation est décorative — le résultat est calculé en premier, puis la roue tourne pour le révéler. Même si vous arrêtez l'animation prématurément, le segment choisi reste le même.

Puis-je sauvegarder la roue d'une session à l'autre ?

Non. Les options ne sont conservées que pendant la session en cours. Fermer l'onglet ou rafraîchir la page perd la liste. Copiez vos options avant de fermer si vous voulez les réutiliser.

Devrais-je l'utiliser pour des décisions importantes ?

Utilisez-la pour des choix de groupe à faibles enjeux (déjeuner, ordre de présentation, choix de tirage) où n'importe quelle option convient et où l'aléatoire visible évite les rancœurs. Ne déléguez pas des décisions où les conséquences diffèrent fortement entre options — la roue ne sait pas peser des compromis.

Pourquoi tire-t-elle parfois deux fois la même option d'affilée ?

Chaque tirage est indépendant. Avec trois options, la probabilité de deux tirages identiques de suite est 1/3 ≈ 33 %. Avec dix options, c'est 10 %. La répétition surprend, mais elle est mathématiquement attendue dans une sélection véritablement aléatoire.

Ma liste d'options est-elle téléversée ?

Non. La roue tourne entièrement dans votre navigateur. Les options ne sont enregistrées localement que si vous le choisissez ; rien n'est transmis.