Here you can find the source of shuffle()
Array.prototype.shuffle = function () { return this.sort((a, b) => Math.random() > 0.5 ? 1 : -1) }
Array.prototype.shuffle = function( b ) var i = this.length, j, t; while( i ) j = Math.floor( ( i-- ) * Math.random() ); t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i]; this[i] = this[j]; this[j] = t; ...
Array.prototype.shuffle = function() { var a = this; var j, x, i; for (i = a.length; i; i -= 1) { j = Math.floor(Math.random() * i); x = a[i - 1]; a[i - 1] = a[j]; a[j] = x; return a; };
Array.prototype.shuffle = function() { for (var i = this.length - 1; i > 0; i--) { var num = Math.floor(Math.random() * (i + 1)), d = this[num]; this[num] = this[i]; this[i] = d; return this;
Array.prototype.shuffle = function () { for (var i = this.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var tmp = this[i]; this[i] = this[j]; this[j] = tmp; return this;
Array.prototype.shuffle = function() { for ( var i = this.length-1; i > 0; i-- ) { var j = Math.floor( i * Math.random() ); var tmp = this[ j ]; this[ j ] = this[ i ]; this[ i ] = tmp; return this;