getRandom method

List<T> getRandom(
  1. int count, [
  2. int? seed
])

Returns a new list containing random elements from this list.

count is the number of elements that will be returned.

Implementation

List<T> getRandom(int count, [int? seed]) {
  assert(isNotEmpty, 'The list must not be empty.');
  assert(count > 0 && count <= length);

  final indexes = List<int>.generate(length, (index) => index);
  final randomIndexes = <int>[];
  for (var i = 0; i < length; i++) {
    randomIndexes.add(indexes.removeRandom());
  }

  return List<T>.generate(count, (index) => elementAt(randomIndexes[index]));
}