// This macro demonstrates how to randomize the contents of an array // (e.g., a list of file names) using the Fisher Yates shuffle: // http://en.wikipedia.org/wiki/Fisher-Yates_shuffle // As a test, randomize a list of prime numbers primes = newArray(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97); shuffle(primes); for (i=0; i 1) { k = randomInt(n); // 0 <= k < n. n--; // n is now the last pertinent index; temp = array[n]; // swap array[n] with array[k] (does nothing if k==n). array[n] = array[k]; array[k] = temp; } } // returns a random number, 0 <= k < n function randomInt(n) { return n * random(); }