The de-facto unbiased shuffle algorithm is the Fisher-Yates (aka Knuth) Shuffle.
See https://github.com/coolaj86/knuth-shuffle
You can see a great visualization here (and the original post linked to this)
function shuffle(array) { let currentIndex = array.length, randomIndex; // While there remain elements to shuffle... while (currentIndex != 0) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex--; // And swap it with the current element. [array[currentIndex], array[randomIndex]] = [ array[randomIndex], array[currentIndex]]; } return array; } // Used like so var arr = [2, 11, 37, 42]; shuffle(arr); console.log(arr);
Related Posts:
- Is there a simple way to make a random selection from an array in JavaScript or any other programming language?
- What’s the difference between “{}” and “[]” while declaring a JavaScript array?
- For-each over an array in JavaScript
- How do I check if an array includes a value in JavaScript?
- Loop through an array in JavaScript
- How can I remove a specific item from an array?
- Find object by id in an array of JavaScript objects
- How can I access and process nested objects, arrays or JSON?
- Split string into array
- Generate random number between two numbers in JavaScript
- How can I remove a specific item from an array?
- Array.size() vs Array.length
- Sort array of objects by string property value
- Copy array by value
- How can I reverse an array in JavaScript without using libraries?
- What is the way of declaring an array in JavaScript?
- How to create an associative array in JavaScript literal notation
- Remove duplicate values from JS array [duplicate]
- How can I create a two dimensional array in JavaScript?
- How to loop through an array containing objects and access their properties
- Get the last item in an array
- How do I empty an array in JavaScript?
- Remove duplicate values from JS array
- How can I create a two dimensional array in JavaScript?
- How to loop through an array containing objects and access their properties
- Get the last item in an array
- How to filter an array/object by checking multiple values
- How do you check if a variable is an array in JavaScript?
- How do I empty an array in JavaScript?
- Generating random whole numbers in JavaScript in a specific range?
- How to find the sum of an array of numbers
- Remove Object from Array using JavaScript
- Short circuit Array.forEach like calling break
- Remove duplicate values from JS array
- How to check if array is empty or does not exist?
- Why is using “for…in” for array iteration a bad idea?
- Deleting array elements in JavaScript – delete vs splice
- Filter array to have unique values
- How to compare arrays in JavaScript?
- Better way to sum a property value in an array
- Shuffle an array with python, randomize array item order with python
- How to convert an Object {} to an Array [] of key-value pairs in JavaScript
- Fastest way to duplicate an array in JavaScript – slice vs. ‘for’ loop
- Merge/flatten an array of arrays
- How to print elements from array with javascript
- Remove Object from Array using JavaScript
- What is the difference between ( for… in ) and ( for… of ) statements?
- What’s the difference between “Array()” and “[]” while declaring a JavaScript array?
- Short circuit Array.forEach like calling break
- Short circuit Array.forEach like calling break
- Most efficient way to convert an HTMLCollection to an Array
- How to remove item from array by value?
- Random shuffling of an array
- Remove duplicate values from JS array
- How to loop through an array containing objects and access their properties
- Sorting arrays in javascript by object key value
- Convert Array to Object
- How do I check whether an array contains a string in TypeScript?
- How do you put an image file in a json object?
- push object into array
- Counting the occurrences / frequency of array elements
- Remove last item from array
- Get all non-unique values (i.e.: duplicate/more than one occurrence) in an array
- Get a random item from a JavaScript array
- Objects are not valid as a React child. If you meant to render a collection of children, use an array instead
- Simple average function in Javascript
- How to add an object to an array
- Finding the average of an array using JS
- How to change value of object which is inside an array using JavaScript or jQuery?
- Checking for duplicate strings in JavaScript array
- use Lodash to sort array of object by value
- Showing an image from an array of images – Javascript
- How to remove all duplicates from an array of objects?
- Finding the average of an array using JS
- Uncaught TypeError: Cannot read property ‘toUpperCase’ of undefined
- Seeding the random number generator in Javascript
- How to get the difference between two arrays in JavaScript?
- Sort array of objects by single key with date value
- Most efficient method to groupby on an array of objects
- Array Mapping in AngularJs
- Convert array to JSON
- Return array from function
- Javascript call() & apply() vs bind()?
- How to get the first element of an array?
- JavaScript array to CSV
- How to sort an array of integers correctly
- console.log showing contents of array object
- console.log showing contents of array object
- How to sort 2 dimensional array by column value?
- Get JavaScript object from array of objects by value of property [duplicate]
- Complex JSON nesting of objects and arrays
- Getting a random value from a JavaScript array
- How do I store an array in localStorage?
- How to determine if Javascript array contains an object with an attribute that equals a given value?
- JavaScript Array Push key value
- How to initialize an array’s length in JavaScript?
- javascript push multidimensional array
- Find a value in an array of objects in Javascript [duplicate]
- Shuffle an array with python, randomize array item order with python
- Should I manually resolve WP Core File security issues or await a subsequent WP release?