Avatar ·

Comment mélanger correctement les éléments d'un tableau en JavaScript ?

Bonjour à tous ! Je suis débutant en JavaScript et j'ai rencontré un problème : je dois mélanger les éléments d'un tableau dans un ordre aléatoire. Par exemple, j'ai un tableau de cartes pour un jeu : ```javascript const cards = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']; ``` Je veux qu'après le mélange, l'ordre des éléments devienne aléatoire. J'ai essayé d'utiliser `Math.random()` avec `sort()`, comme ceci : ```javascript cards.sort(() => Math.random() - 0.5); ``` Cela semble fonctionner, mais j'ai lu que cette approche est incorrecte car la distribution n'est pas uniforme. De plus, certains éléments peuvent rester à leur place plus souvent que d'autres. Pouvez-vous m'indiquer comment implémenter correctement le shuffle de Fisher-Yates (ou tout autre algorithme correct) en JavaScript pur ? Il est important que la fonction soit universelle et fonctionne avec n'importe quel tableau, pas seulement avec des nombres. Merci d'avance pour votre aide ! <<>>

Meilleure réponse : l'algorithme de Fisher-Yates (Knuth)

Vous avez tout à fait raison : c'est