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