Nodejs Array Shuffle shuffle()

Here you can find the source of shuffle()

Method Source Code

/*/*w ww.  j a va2 s .c o  m*/
Write a function for doing an in-place ? shuffle of an array.
The shuffle must be "uniform," meaning each item in the original array must have 
the same probability of ending up in each spot in the final array.
Assume that you have a function get_random(floor, ceiling) for getting a random 
integer that is >=floor and <=ceiling.
*/

Array.prototype.shuffle = function(){
  var length = this.length;
  var i, j, temp;
  for(i = length - 1; i >= 0; i--){
    j = Math.floor(Math.random()*(i+1));
    temp = this[i];
    this[i] = this[j];
    this[j] = temp;
  }
  return this;
};

var testArray = [1,2,3,4,5,6,7,8,9,10];
console.log(testArray.shuffle());
console.log(testArray);

Related

  1. shuffle()
    Array.prototype.shuffle = function () { 
      for(var j, x, i = this.length; i; j = Math.floor(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
      return this;
    };
    console.log("#FFFEFA".split(", ").shuffle());
    
  2. shuffle()
    Array.prototype.shuffle = function () {
      for(var j, x, i = this.length; i; j = Math.floor(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
      return this;
    };
    
  3. shuffle()
    Array.prototype.shuffle = function(){
       var new_arr = this.slice(0);
     for (var j, x, i = new_arr.length; i; j = Math.floor(Math.random() * i), x = new_arr[--i], new_arr[i] = new_arr[j], new_arr[j] = x);
       return new_arr;
    
  4. shuffle()
    Array.prototype.shuffle = function() {
      var currentIndex = this.length, temporaryValue, randomIndex;
      while (0 !== currentIndex) {
        randomIndex = Math.floor(Math.random() * currentIndex);
        currentIndex -= 1;
        temporaryValue = this[currentIndex];
        this[currentIndex] = this[randomIndex];
        this[randomIndex] = temporaryValue;
    
  5. shuffle()
    Array.prototype.shuffle = function() {
        if (Object.prototype.toString.call(this) !== '[object Array]') {
            throw new TypeError("`this` must be Array, not " + typeof this);
        var length = this.length;
        for (var i = length - 1; i >= 0; i--) {
            var randomIndex = Math.floor(Math.random() * length),
                temp = this[i];
            this[i] = this[randomIndex];
    ...
    
  6. shuffle()
    Array.prototype.shuffle = function(){
      var result = [];
      while(this.length > 0 ){
        result.push( this.splice(Math.floor(Math.random() * this.length), 1)[0] );
      return result;
    };
    
  7. shuffle()
    Array.prototype.shuffle = function(){
      for (var i = 0; i < this.length; i++){
          var a = this[i];
          var b = Math.floor(Math.random() * this.length);
          this[i] = this[b];
          this[b] = a;
    function shuffleProperties(obj) {
    ...
    
  8. shuffle()
    Array.prototype.shuffle = function () {
        let array = this, arraylength = array.length, randomIndex, temp;
        while (arraylength) {
            randomIndex = Math.floor(Math.random(arraylength) * arraylength--);
            temp = array[arraylength];
            array[arraylength] = array[randomIndex];
            array[randomIndex] = temp;
        return array;
    ...
    
  9. shuffle()
    'use strict';
    Array.prototype.shuffle = function() {
      var arr = this.slice(0);
      var counter = this.length,
        temp, index;
      while (counter > 0) {
        index = Math.floor(Math.random() * counter);
        counter--;
        temp = arr[counter];
    ...