En quoi consiste cet outil ?
Un mélangeur de listes réorganise un ensemble d'éléments dans une séquence aléatoire, ou en tire un sous-ensemble au hasard. La difficulté est de le faire sans biais : une approche naïve, comme trier un tableau avec une fonction de comparaison aléatoire, produit une distribution biaisée où certains ordres sont bien plus probables que d'autres.
Cet outil utilise l'algorithme de mélange Fisher–Yates (Durstenfeld), la méthode standard pour obtenir une permutation aléatoire réellement uniforme — chaque ordre possible de votre liste a exactement la même probabilité d'apparaître.
Pourquoi l'utiliser ?
- Mélange réellement non biaisé — Fisher–Yates, et non l'anti-pattern courant sort(() => Math.random() - 0.5) qui fausse les résultats.
- Mode tirage de gagnants : tirez exactement N éléments au hasard au lieu de mélanger toute la liste, idéal pour les tombolas et concours.
- Suppression optionnelle des doublons avant le mélange, pour les listes pouvant contenir des répétitions accidentelles.
- Fonctionne avec n'importe quel texte — noms, tâches, billets, lots — un élément par ligne.
- Confidentiel : le mélange se fait entièrement dans votre navigateur, rien n'est envoyé.
Mode d'emploi
- Collez votre liste dans le champ, un élément par ligne.
- Cochez éventuellement « supprimer les doublons avant de mélanger » si la liste peut contenir des répétitions.
- Pour un mélange complet, cliquez simplement sur Mélanger. Pour tirer des gagnants, cochez l'option N éléments et indiquez combien en tirer.
- Copiez le résultat — cliquez à nouveau sur Mélanger à tout moment pour obtenir un nouvel ordre aléatoire ou un nouveau tirage.
Exemple
Entrée
Alice
Bob
Charlie
Diana
EthanRésultat
Une liste réordonnée aléatoirement, par exemple Charlie, Ethan, Alice, Diana, Bob — différente à chaque clic sur Mélanger.Avec le mode tirage de gagnants réglé sur 2, la même entrée pourrait plutôt produire seulement Ethan et Alice — un tirage aléatoire de 2 éléments, pas une simple découpe des 2 premiers d'un ordre mélangé.
Pourquoi un mélange naïf produit des résultats biaisés
sort(() => Math.random() - 0.5) est une astuce courante qui semble correcte mais ne l'est pas : elle repose sur le fait que l'algorithme de tri appelle le comparateur un nombre précis de fois selon un motif précis, ce que les implémentations de tri réelles ne garantissent pas. L'effet pratique est un mélange où certains ordres apparaissent plus souvent que d'autres — assez subtil pour passer inaperçu d'un coup d'œil, mais statistiquement mesurable sur de nombreuses exécutions.
Fisher–Yates contourne entièrement le problème : au lieu de demander à un algorithme de tri de produire de l'aléatoire indirectement, il échange directement chaque position avec une position restante choisie au hasard, exactement une fois, ce qui est prouvé uniforme quelle que soit l'implémentation de tri du langage sous-jacent.
Foire aux questions
Pourquoi ne pas simplement utiliser array.sort(() => Math.random() - 0.5) ?
Cette ligne est un anti-pattern bien connu : la fonction sort() de JavaScript ne garantit pas que chaque paire d'éléments soit comparée le même nombre de fois, donc l'ordre obtenu est mesurablement biaisé en faveur de certaines permutations — certains éléments finissent par avoir plus de chances de se retrouver près du début ou de la fin que ne le voudrait une vraie aléatoire. Fisher–Yates évite entièrement ce problème par construction, et c'est l'algorithme que cet outil implémente réellement.
L'ordre du mélange est-il vraiment non biaisé ?
Oui. Fisher–Yates parcourt la liste une seule fois et, à chaque étape, échange l'élément courant avec un élément choisi de façon uniformément aléatoire parmi la portion pas encore mélangée. Il est mathématiquement prouvé que cela produit chaque ordre possible avec une probabilité égale, à condition de disposer d'une bonne source d'aléatoire (le Math.random() de JavaScript).
Quelle est la différence entre le mode mélange et le mode tirage de gagnants ?
Le mode mélange réordonne tous les éléments de votre liste et vous les montre tous, simplement dans un nouvel ordre. Le mode tirage de gagnants ne tire que N éléments au hasard et n'affiche que ceux-là — utile lorsque vous voulez sélectionner un nombre fixe de gagnants ou d'échantillons sans révéler toute une liste réordonnée.
Puis-je utiliser cet outil pour un vrai tirage au sort avec des lots ?
Oui, pour des tombolas et tirages informels, cela fonctionne bien car l'aléatoire est réellement uniforme. Pour un tirage au sort légalement encadré avec des lots en argent, vérifiez la réglementation locale — certaines juridictions exigent un processus de tirage spécifique et auditable.
La suppression des doublons modifie-t-elle ma liste d'origine ?
Non — la déduplication n'affecte que le résultat mélangé, et uniquement lorsque la case est cochée. Votre liste d'entrée reste exactement telle que vous l'avez saisie, vous pouvez donc activer ou désactiver l'option et remélanger sans tout retaper.