Aller au contenu
LuckyWheel Mes roues

Notre roue est-elle vraiment aléatoire ?

Comment le gagnant est tiré, pourquoi un prénom peut sortir deux fois, et de quoi le vérifier vous-même.

Réponse courte : non, la roue n'est pas truquée

Vous vous demandez si une roue de la chance en ligne peut être truquée ? La nôtre ne l'est pas, et cette page vous donne de quoi le vérifier au lieu de nous croire sur parole. Le gagnant est tiré par le générateur cryptographique de votre navigateur avant que la roue tourne. Chaque entrée a la même chance, sauf si vous lui donnez un poids, toujours affiché.

Aucun réglage, gratuit ou payant, ne permet de forcer un résultat. Si un prénom sort deux fois de suite, c'est le hasard qui fait son travail : les chiffres sont plus bas.

Comment le gagnant est choisi

Pour qu'une roue aléatoire soit vraiment aléatoire, le résultat ne doit dépendre ni de l'animation, ni de votre geste, ni de l'organisateur. Chaque lancer suit donc trois étapes :

  1. Le tirage. Dès que vous lancez, votre navigateur choisit le gagnant parmi les entrées en jeu avec crypto.getRandomValues, la source de hasard cryptographique de votre appareil, en tenant compte des poids.
  2. L'angle d'arrêt. Un point est tiré au hasard dans la tranche gagnante, jamais sur la ligne entre deux tranches, ainsi qu'un nombre de tours.
  3. L'animation. La roue rejoint cet angle. Recul, ralentissement, tics sonores et suspense ne sont que de la mise en scène.

Votre geste ne change que la durée, le nombre de tours et le sens de rotation, et le bouton Stop raccourcit la fin de l'animation vers le même angle. Un test automatisé lance 1 000 tirages sur des roues de 2 à 5 000 entrées et vérifie que la tranche sous le pointeur est toujours celle du gagnant tiré. Sans JavaScript, notre serveur tire le gagnant avec random_int(), lui aussi cryptographique.

Pourquoi le même nom sort deux fois

Une roue n'a pas de mémoire : à chaque lancer, toutes les entrées retrouvent leurs chances. Avec 10 prénoms, celui qui vient de sortir a 10 % de chances de ressortir au lancer suivant, et sur 20 lancers, la probabilité de voir un prénom sortir deux fois de suite atteint 86,5 %.

Sur une série, la probabilité d'au moins une répétition vaut 1 − n! / ((n − k)! × n^k) pour n entrées et k lancers. Avec 10 entrées et 5 lancers, elle est de 69,8 % : plus de deux chances sur trois. C'est le paradoxe des anniversaires : dans un groupe de 23 personnes, deux ont le même anniversaire avec une probabilité de 50,7 %.

EntréesLancersProbabilité
10328 %
10449,6 %
10569,8 %
20541,9 %
281083,9 %

Calculez votre cas ci-dessous. Pour que chacun passe une seule fois, activez le mode élimination, réglage par défaut de la roue des prénoms.

Simulateur : lancez 100 000 tirages

Vérifiez par vous-même : faites tourner la roue 10 000, 100 000 ou 1 000 000 de fois en quelques secondes, avec 2 à 100 entrées égales ou votre roue actuelle et ses poids. Le simulateur utilise le même module de tirage que la roue.

Il affiche un histogramme des fréquences observées et attendues, l'écart maximal et un test du khi-deux (χ²) avec sa valeur p. Avec 10 entrées et 100 000 tirages, chaque entrée sort environ 10 000 fois, et dans 95 % des cas entre 9 810 et 10 190 fois.

Une valeur p supérieure à 0,01 indique des écarts compatibles avec le hasard. Une valeur plus basse arrive environ une fois sur cent, même avec un hasard parfait : relancez, elle ne doit pas se répéter.

Poids et chances personnalisées : toujours visibles

Donner plus de chances à une entrée est parfois utile : un gros lot plus rare sur la roue des lots, une corvée moins fréquente sur la roue des tâches. Mais cela se voit toujours :

  • chaque tranche est proportionnelle à son poids : avec des poids 1, 2 et 3, les tranches mesurent 60°, 120° et 180°, soit 16,7 %, 33,3 % et 50 % de chances ;
  • les pourcentages s'affichent dès qu'un poids diffère, avec un badge « Chances personnalisées » sous la roue ;
  • le compteur « 12 entrées · 11 dans la roue » signale les entrées masquées, éliminées ou épuisées, qui ne participent pas.

Les poids, de 0,1 à 100, voyagent aussi dans le lien de partage : la roue s'ouvre ailleurs avec les mêmes chances.

Ce que nous ne ferons jamais

Une roue peut être truquée de deux façons : un gagnant décidé d'avance, ou des chances modifiées sans que cela se voie. Nous refusons les deux, c'est un engagement public :

  • aucun mode truqué ni gagnant forcé, aucune option cachée, gratuite ou payante, pour influencer un tirage ;
  • aucune chance modifiée sans que la roue et les pourcentages le montrent ;
  • aucun Math.random dans les tirages ni dans les mélanges : notre vérification automatique échoue si elle en trouve un.

Pour un concours, le tirage au sort en ligne ajoute un certificat avec l'empreinte SHA-256 de la liste des participants.

Le code du tirage

Le tirage tient en quelques lignes de JavaScript, exécutées dans votre navigateur et lisibles dans le fichier rng.js. Elles font quatre choses :

  1. u32() puise des nombres de 32 bits dans une réserve remplie par crypto.getRandomValues.
  2. randInt(n) renvoie un entier de 0 à n − 1 et rejette les valeurs à partir de 2^32 − (2^32 mod n), ce qui supprime le biais du modulo.
  3. pickWeighted() convertit les poids en entiers (×100), cumule leurs sommes, tire un nombre avec randInt et trouve le gagnant par recherche dichotomique, instantanée même avec 5 000 entrées.
  4. planSpin() place le point d'arrêt au hasard dans la tranche gagnante, avec une marge de 15 % de sa largeur de chaque côté (3° au plus), puis ajoute les tours.

Pourquoi rejeter des valeurs ? Un dé à 8 faces réparti entre 3 personnes donne 3 faces à deux d'entre elles et 2 à la troisième. En relançant le dé sur 7 ou 8, il reste 6 faces, deux chacune. randInt fait de même sur 4 294 967 296 valeurs. Ce module tire aussi le pile ou face, les dés et le nombre aléatoire.

Questions fréquentes

Une roue en ligne peut-elle être truquée ?

Oui, techniquement : un site peut choisir le gagnant à l'avance ou modifier les chances en secret. C'est pourquoi un tirage doit être vérifiable. Sur LuckyWheel, le gagnant est tiré par le générateur cryptographique du navigateur, chaque tranche est proportionnelle à ses chances et aucune option ne permet de forcer un résultat. Le simulateur ci-dessus permet de le vérifier.

Pourquoi le même prénom sort-il souvent ?

Parce que la roue n'a pas de mémoire : un prénom qui vient de sortir garde exactement ses chances au lancer suivant. Les répétitions sont donc normales : avec 10 prénoms et 5 lancers, la probabilité qu'au moins un prénom ressorte est de 69,8 %. Pour que chacun passe une seule fois, activez le mode élimination : le gagnant quitte la roue jusqu'à la remise à zéro.

La vitesse du geste change-t-elle le résultat ?

Non. Le gagnant est tiré au moment où vous lancez, avant le premier mouvement de la roue. La vitesse de votre geste règle seulement la durée de l'animation, entre 3,5 et 9 secondes, le nombre de tours et le sens de rotation. Lancer doucement, fort, avec le bouton ou au clavier donne les mêmes chances à chaque entrée.

Comment prouver un tirage à des participants ?

Montrez la liste avant de lancer, par exemple avec un lien en lecture seule, puis lancez en direct ou en partage d'écran. Pour un concours, le tirage au sort et le tirage Instagram fournissent un certificat avec la date, les réglages et l'empreinte SHA-256 de la liste : chacun peut vérifier qu'elle n'a pas été modifiée après sa publication.

Utilisez-vous Math.random ?

Non, pas pour les tirages. Math.random n'est pas conçu pour la sécurité : ses valeurs peuvent être prédites à partir d'une série de résultats observés. Nos tirages et nos mélanges utilisent uniquement crypto.getRandomValues. Math.random sert seulement à disperser les confettis, un effet décoratif, et notre vérification automatique échoue si elle le trouve ailleurs dans le code.

Mis à jour le par l’équipe LuckyWheel