Vanilla JavaScript Shuffle Array

β€” 3 minute read


Now and then, you randomly need to shuffle an array in JavaScript. There is a super-easy way of doing it. We can use the sort() method and pass a random number to it.

So in today's tutorial I will teach you how to shuffle an array in Javascript.

JavaScript Shuffle Array permalink

As mentioned in the introduction, we are going to be using the sort method. At the end we will have all items in a randomized order.

This method, without any parameters, will sort an array in a natural way like 123 and abc.

See the following example:

var charArray = ['d', 'f', 'a', 'c', 'b', 'e'];
var numArray = [1, 5, 3, 2, 4];

// ["a", "b", "c", "d", "e", "f"]

// [1, 2, 3, 4, 5]

As you can see the Arrays get normalised sorted. But we can also pass a specific argument which is what we are going to use to randomise the array sorting.

var rockPaperScissor = ['πŸ’Ž', 'πŸ“„', 'βœ‚οΈ'];
console.log(rockPaperScissor.sort(() => 0.5 - Math.random()));

This will randomly shuffle the array. Let me explain in depth.

The sort function comes with a comparison between two elements, where element one is bigger than two. It will put the index lower or higher.

As for the .5 - Math.random() this will return a value between -0.5 and 0.5

So whenever the value is below 0, the element is placed before the other element. And otherwise it will be positioned after the item.

Also, read about sorting an Array of Objects by Value

See the code example in this Codepen permalink

You can test this and see it in action on this Codepen.

See the Pen Vanilla JavaScript Shuffle Array by Chris Bongers (@rebelchris) on CodePen.

Thank you for reading, and let's connect! permalink

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter