*<Null safety>*
List<T> sample (int count, [Random? random])
List<T> sample(int count, [Random? random]) { RangeError.checkNotNegative(count, 'count'); var iterator = this.iterator; var chosen = <T>[]; for (var i = 0; i < count; i++) { if (iterator.moveNext()) { chosen.add(iterator.current); } else { return chosen; } } var index = count; random ??= Random(); while (iterator.moveNext()) { index++; var position = random.nextInt(index); if (position < count) chosen[position] = iterator.current; } return chosen; }