Как получить случайный элемент из массива, не захватывая один и тот же элемент более одного раза? [Дубликат]

На этот вопрос уже есть ответ:

Как мне перетасовать массив в Swift? 25 ответов

Когда я беру элемент из массива, используяarc4random_uniform() метод, один и тот же элемент массива часто захватывается более одного раза. Я пытаюсь сделать так, чтобы каждый элемент в массиве захватывался только один раз. Причина, по которой я пытаюсь это сделать, состоит в том, что более чем одна ячейка вUITableView не имеют того же текста. Вот массив для текста ячеек вUITableView:

var definitions = ["Used to carry the pharoah","Used to carry bodies as a ceremony","Had a flat deck to carry a farmer's treasure","Daily, it made a trip around the world to carry Ra","Towed by smaller boats, carrying heavy objects","Used for business and pleasure by officials/nobles","Carried most Egyptians and some goods"]

В моемviewDidLoad() метод, я сделал это, чтобы вызвать случайные элементыdefinitions:

self.boats = [Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))])]

Как я могу изменить свой код, чтобы два элемента не отображались дважды в моемUITableView? Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос