простейшим решением, вероятно, было бы создание usedQueue
длины k
(где k - количество выборов до того, как выбор может повториться.) Когда вы выбираете выбор, удалите его из исходного списка ипоместите это в usedQueue
.Затем, если usedQueue.length > k
, вставьте один обратно в ваш массив.
Как уже говорилось, это значительно уменьшает случайность вашего алгоритма.Тем не менее, он имеет практическое применение (взгляните на iTunes.)