Nodejs Array Shuffle shuffle()

Here you can find the source of shuffle()

Method Source Code

/**/*from  w  ww .ja va  2  s  .  c  o m*/
 * Fisher-Yates shuffle algorithm
 * @return {Array} shuffled array
 */
Array.prototype.shuffle = function() {
  var array = this.slice();
  var current = this.length;
  var temp;
  var random;

  while(current !== 0) {
    //pick random element
    random = Math.floor(Math.random() * current);
    current -= 1;

    //swap random element with current element
    temp = array[current];
    array[current] = array[random];
    array[random] = temp;
  }
  return array;
}

Related

  1. shuffle()
    Array.prototype.shuffle = function () {
      var arr  = new Array();
      for (var i=0 ; i<this.length ; i++) {
        arr.push(this[i]);
      for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
      return arr;
    
  2. shuffle()
    Array.prototype.shuffle = function() {
      for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
      return this;
    };
    
  3. shuffle()
    Array.prototype.shuffle=function(){
      var i = this.length,j,temp; 
      while (--i > 0) {
          j=Math.floor(Math.random()*(i));
          temp=this[j];
          this[j]=this[i];
          this[i]=temp;
      return this;
    ...
    
  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() {
        var i = this.length;
        while (--i) {
            var j = Math.floor(Math.random() * (i + 1))
            var temp = this[i];
            this[i] = this[j];
            this[j] = temp;
        return this; 
    ...
    
  6. 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;
      return this;
    
  7. shuffle()
    if(Array.prototype.shuffle === undefined) {
        Array.prototype.shuffle = function() {
            var counter = this.length;
            while (counter > 0) {
                var temp;
                var index;
                index = Math.floor(Math.random() * counter);
                counter--;
                temp = this[counter];
    ...
    
  8. shuffle()
    Array.prototype.shuffle = function() {
        var input = this;
        for (var i = input.length-1; i >=0; i--) {
            var randomIndex = Math.floor(Math.random()*(i+1)); 
            var itemAtIndex = input[randomIndex]; 
            input[randomIndex] = input[i]; 
            input[i] = itemAtIndex;
        return input;
    ...
    
  9. shuffle()
    Array.prototype.shuffle = function () {
                var self = this,
                    n = self.length,
                    i,
                    j,
                    tmp;
                for (i = n - 1; i > 0; i -= 1) {
                    j = Math.floor(Math.random() * (i + 1));
                    tmp = self[i];
    ...