Google Sheets-Kochbuch: Listen zufällig mischen


fisherYatesShuffle

Bearbeiten

Mit der Funktion wird eine Liste pseudo-zufällig durcheinandergemischt.

  • Aufruf: =fisherYatesShuffle(Bereich)
  • Beispiel: =fisherYatesShuffle(A2:A12)
  • Rückgabe: Die neu gemischte Liste.
/**
 * Shuffles a list by using the Fisher-Yates shuffle algorithm
 * https://www.delftstack.com/de/howto/javascript/shuffle-array-javascript/
 *
 * @param {arr} input The range to shuffle.
 * @return The shuffled range.
 * @customfunction
*/
function fisherYatesShuffle(arr) {
  for(var i =arr.length-1 ; i>0 ;i--){
        var j = Math.floor( Math.random() * (i + 1) ); //random index
        [arr[i],arr[j]]=[arr[j],arr[i]]; // swap
    }
  return arr;
}
A1:B12
Ausgangsliste Shuffle
0 0
1 9
2 2
3 10
4 1
5 4
6 3
7 6
8 8
9 7
10 5


Die Beispiele auf dieser Seite wurden getestet: 03/2022