How to shuffle a List (or Array) in Javascript

* Returns number starting from offset up to n-1
function getRandomWithOffset(n,offset) {
return Math.floor(Math.random()*n+offset);

* Returns random integer from 0 to n-1
function getRandom(n) {
return getRandomWithOffset(n,0);

/** Fisher–Yates shuffle algorithm O(n) */
function shuffleList(list) {
for (var i=list.length-1; i>0; i–) {
var j = getRandom(i+1);
var buffer = list[i];

/** Usage example:
var myList = [1,2,3,4,5,6,7,8,9];
shuffleList(myList); //after this the list has been shuffled.

Note: This is a simple linear algorithm to shuffle. If you need to do some serious shuffling, say you’re creating a poker game or something where it’s crucial where nobody can predict the order of the cards DO NOT USE this algorithm, go for something more complex.

Submit a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.