shuffle function
Shuffles a list randomly.
A sub-range of a list can be shuffled by providing start
and end
.
If start
or end
are omitted,
they default to the start and end of the list.
If random
is omitted, it defaults to a new instance of Random.
Implementation
void shuffle(List elements, [int start = 0, int? end, Random? random]) {
random ??= Random();
end ??= elements.length;
var length = end - start;
while (length > 1) {
var pos = random.nextInt(length);
length--;
var tmp1 = elements[start + pos];
elements[start + pos] = elements[start + length];
elements[start + length] = tmp1;
}
}