Generic Instance Method


Returns the elements of the sequence, shuffled using the given generator as a source for randomness.


func shuffled<T>(using generator: inout T) -> [Bound] where T : RandomNumberGenerator
Available when Bound conforms to Strideable and Bound.Stride conforms to SignedInteger.



The random number generator to use when shuffling the sequence.

Return Value

An array of this sequence’s elements in a shuffled order.


You use this method to randomize the elements of a sequence when you are using a custom random number generator. For example, you can shuffle the numbers between 0 and 9 by calling the shuffled(using:) method on that range:

let numbers = 0...9
let shuffledNumbers = numbers.shuffled(using: &myGenerator)
// shuffledNumbers == [8, 9, 4, 3, 2, 6, 7, 0, 5, 1]

Complexity: O(n), where n is the length of the sequence.

See Also

Reordering Elements

func sorted() -> [Bound]

Returns the elements of the sequence, sorted.

func sorted(by: (Bound, Bound) -> Bool) -> [Bound]

Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.

func reversed() -> ReversedCollection<Range<Bound>>

Returns a view presenting the elements of the collection in reverse order.

func shuffled() -> [Bound]

Returns the elements of the sequence, shuffled.