How can I shuffle an array in JavaScript?
Davide S
davide s profile pic

In JavaScript, you can shuffle an array by implementing an algorithm that randomly rearranges its elements. Here's a step-by-step guide on how to shuffle an array: 1. Create a function to shuffle the array: Start by creating a function that will perform the shuffling operation. You can define a function that takes an array as input and returns a new shuffled array. Here's an example:

1
2
3
4
5

   function shuffleArray(array) {
     // Code to shuffle the array
   }
   

2. Implement the Fisher-Yates algorithm: The Fisher-Yates algorithm is a common method used to shuffle an array. It iterates over the array in reverse order and swaps each element with a randomly selected element from the remaining unshuffled portion. Here's an example of how to implement the Fisher-Yates algorithm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

   function shuffleArray(array) {
     var currentIndex = array.length;
     var temporaryValue, randomIndex;

     // While there are elements remaining to shuffle
     while (currentIndex !== 0) {
       // Pick a remaining element
       randomIndex = Math.floor(Math.random() * currentIndex);
       currentIndex -= 1;

       // Swap current element with the randomly selected element
       temporaryValue = array[currentIndex];
       array[currentIndex] = array[randomIndex];
       array[randomIndex] = temporaryValue;
     }

     return array;
   }
   

In this code snippet, theshuffleArray() function uses awhile loop to iterate over the array in reverse order. In each iteration, a random index is generated usingMath.random() andMath.floor(), and the current element is swapped with the element at the random index. 3. Invoke the shuffle function: To shuffle an array, simply call theshuffleArray() function and pass the array as an argument. The function will return the shuffled array. Here's an example:

1
2
3
4
5

   var myArray = [1, 2, 3, 4, 5];
   var shuffledArray = shuffleArray(myArray);
   console.log(shuffledArray);
   

In this code snippet, theshuffleArray() function is invoked with themyArray as the argument. The resulting shuffled array is logged to the console. By following these steps and implementing the Fisher-Yates algorithm, you can shuffle an array in JavaScript. The shuffled array will have a random order of elements. Remember to pass the array to the shuffle function and use the returned shuffled array as needed in your code.