deranged method
Implementation
List<T> deranged() {
final random = Random();
List<T> result = List.from(this);
for (int i = 0; i < result.length; i++) {
int j = i;
while (j == i) {
j = random.nextInt(result.length);
}
T temp = result[i];
result[i] = result[j];
result[j] = temp;
}
for (int i = 0; i < result.length; i++) {
if (result[i] == this[i]) {
return deranged();
}
}
return result;
}