April 2018
Beginner to intermediate
426 pages
10h 19m
English
This algorithm was created by Fisher and Yates and popularized by Donald E. Knuth in The Art of Computer Programming book series.
It consists of iterating each position of the array, starting with its last position and swapping the current position with a random position. The random position is lesser than the current position; this way, the algorithm makes sure the positions already shuffled will not be shuffled again (the more we shuffle a deck of cards, the worse is the shuffle).
The following code presents the Fisher-Yates shuffle algorithm:
function shuffle(array) { for (let i = array.length - 1; i > 0; i--) { const randomIndex = Math.floor(Math.random() * (i + 1)); swap(array, i, randomIndex); } return array; ...