Solution 1


var points = [40, 100, 1, 5, 25, 10];

points.sort(function(a, b){return 0.5 - Math.random()});

// [ 1, 100, 40, 10, 25, 5 ]

points.sort(function(a, b){return 0.5 - Math.random()});

// [ 5, 1, 25, 100, 10, 40 ]

....
...

Solution 2


var points = [40, 100, 1, 5, 25, 10];

var i, j, k;
for (i = points.length - 1; i > 0; i--) {
  j = Math.floor(Math.random() * i);
  k = points[i];
  points[i] = points[j];
  points[j] = k;
}
console.log(points);

// [ 10, 40, 100, 1, 5, 25 ]

console.log(points);

// [ 10, 40, 25, 100, 5, 1 ]

....
...

Make a function..


var points = [40, 100, 1, 5, 25, 10];

function myFunction() {
var i, j, k;
  for (i = points.length -1; i > 0; i--) {
    j = Math.floor(Math.random() * i)
    k = points[i]
    points[i] = points[j]
    points[j] = k
  }
  console.log(points) ;
}

myFunction();

// [ 10, 5, 25, 1, 40, 100 ]

myFunction();

// [ 1, 25, 100, 10, 5, 40 ]

Solution 3


function shuffle(array) {
  var currentIndex = array.length, temporaryValue, randomIndex;

  // 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 = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }

  return array;
}

var points = [40, 100, 1, 5, 25, 10];
shuffle(points);

console.log(points);
// [ 40, 100, 5, 10, 1, 25 ]

console.log(points);
[ 40, 1, 5, 10, 100, 25 ]

Sources:
https://www.w3schools.com/js/js_array_sort.asp
https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array

0 Comments

Leave a reply

Your email address will not be published. required fields are marked *