Nodejs Array Shuffle shuffle(maxLength)

Here you can find the source of shuffle(maxLength)

Method Source Code

/////////////////////
// Array extension //
/////////////////////
Array.prototype.shuffle = function (maxLength) {
    // http://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array
    var currentIndex = this.length
    var temporaryValue;
    var randomIndex;
    var result;/* w  ww . ja  va  2s. c om*/

    maxLength = maxLength || this.length

    // While there remain elements to shuffle...
    while (0 !== currentIndex) {

      // Pick a remaining element...
      randomIndex = Math.floor(Math.random() * currentIndex);
      currentIndex -= 1;

      // And swap it with the current element.
      temporaryValue = this[currentIndex];
      this[currentIndex] = this[randomIndex];
      this[randomIndex] = temporaryValue;
    }

    return this.slice(0, maxLength);
};

Related

  1. shuffle()
    Array.prototype.shuffle = function() {
        for (var j, x, i = this.length - 1; i; j = randomNumber(i), x = this[--i], this[i] = this[j], this[j] = x);
        return this;
    };
    
  2. shuffle()
    Array.prototype.shuffle = function () {
        var c = this.slice(0);
        for (var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
        if (this.compare(c)) {
            this.shuffle();
        return this;
    }; 
    
  3. shuffle()
    Array.prototype.shuffle = function(){
      var counter = this.length, temp, index;
        while (counter > 0){
          index = Math.floor(Math.random() * counter);
          counter--;
          temp = this[counter];
          this[counter] = this[index]
          this[index] = temp;
        };
    ...
    
  4. shuffle()
    Array.prototype.shuffle = function(){
      var counter = this.length, temp, index;
      while (counter > 0) {
        index = (Math.random() * counter--) | 0;
        temp = this[counter];
        this[counter] = this[index];
        this[index] = temp;
      return this;
    ...
    
  5. shuffle(b)
    function random(min, max) 
      return Math.floor(Math.random() * (max - min + 1)) + min; 
    };
    function getRandomColor()
      return 'rgb(' + random(0, 255) + ', ' + random(0, 255) + ', ' + random(0, 255) + ')';
    };
    function generateRandomSymbols()
    ...
    
  6. shuffle(n)
    Array.prototype.shuffle = function (n) {
        var params = [].slice.call(arguments);
        var index = -1,
            result = this,
            length = result.length,
            lastIndex = length - 1;
        while (++index < n) {
            var rand = index + Math.floor(Math.random() * (lastIndex - index + 1));
                value = result[rand];
    ...
    
  7. shuffle(times)
    Array.prototype.shuffle = function(times) {
        if(undefined === times) times = this.length * 2;
        var temp;
        while(times--) {
            var a = Number.random(0, this.length - 1);
            var b = Number.random(0, this.length - 1);
            temp = this[a];
            this[a] = this[b];
            this[b] = temp;
    ...
    
  8. shuffleMe()
    Array.prototype.shuffleMe = function() {
        var array_length = this.length;
        var loop_no = array_length;
        while (--loop_no > 0) {
            var random_number = Math.floor(Math.random() * (loop_no + 1));
            var value = this[random_number];
            this[random_number] = this[loop_no];
            this[loop_no] = value;
        return this;
    var array = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'];
    var result = array.shuffleMe();
    console.log(result);
    
  9. shuffled()
    Array.prototype.shuffled = function() {
      return this.map(function(n){ return [Math.random(), n] })
                 .sort().map(function(n){ return n[1] });
    };