There are several methods to shuffle an array in JavaScript, and while picking a solution, you should always consider efficiency and unpredictability. The Fisher-Yates approach and the sort one-liner are the two solutions shown here. Both options have their own set of benefits and drawbacks, so you’ll have to pick which way is ideal for your project. In Javascript, here’s how to shuffle an array.
Solution 1: Fisher-Yates Array Shuffle
A popular array shuffling solution in Javascript is the Fisher-Yates shuffle. The concept here is simple:
- Start at the end of your array.
- Choose a random index within your array
- Swap the two values
- Repeat down your array until all indexes are swapped.
This approach will give you a lot of unpredictability, and although it’s quite efficient, the size of the array will affect its speed. Because we’ll need to create some code to do the shuffle, it’s ideal to place the algorithm in a reusable function, preferably in a utility file that you can use throughout your project.
The Fisher-Yates shuffle, named after its authors Ronald Fisher and Frank Yates, was originally described in 1938. The Knuth shuffle is another name for this technique.
Solution 2: Sort One Liner
This approach is popular because of its clarity and simplicity. It does, however, have several severe flaws. For big arrays, it is inefficient, and many items might be left unshuffled, resulting in poor overall randomization.
This technique should only be used on tiny arrays when a large proportion of randomization isn’t required.
These are just two examples of how to shuffle an array in Javascript.
Even though it has a larger syntactic payload, the first Fisher-Yates approach from these two possibilities is strongly recommended.