fisher yates shuffle
void FisherYates(int *player, int n) { //implementation of Fisher int i, j, tmp; // create local variables to hold values for shuffle for (i = n - 1; i > 0; i--) { // for loop to shuffle j = rand() % (i + 1); //randomise j for shuffle with Fisher Yates tmp = player[j]; player[j] = player[i]; player[i] = tmp; } }
Source: w3programmers.org
fisher yates shuffle
public static T[] SuffeledArray<T>(T[] array, int seed) { var rand = new Random(seed); // if you are getting error try // var rand = new System.Random(seed); for (int i = 0; i < array.Length; i++) { var randIndex = rand.Next(i, array.Length); var tempItem = array[randIndex]; array[randIndex] = array[i]; array[i] = tempItem; } return array; }
Source: github.com