random method
Returns random value
from list. If list is empty then it returns null
var list = <int>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var randomValue = list.random(); // 3 // 3 will not be removed from list
// If remove = true is passed as argument then polled random item will be removed from list
// before list is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var randomValue = list.random(remove: true); // 5
// after calling with remove = true
// [1, 2, 3, 4, 6, 7, 8, 9, 10]
// If secure = true is passed as argument then Random.secure() is used
var randomValue = list.random(secure: true); // 5
Implementation
T? random({bool secure = false, bool remove = false, int? seed}) {
if (isEmpty) {
return null;
}
Random random;
if (secure) {
random = Random.secure();
} else if (seed != null) {
random = Random(seed);
} else {
random = Random();
}
var randomIndex = random.nextInt(length);
var item = this[randomIndex];
if (remove) {
removeAt(randomIndex);
}
return item;
}