Generic Instance Method

shuffled(using:)

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

Declaration

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

Parameters

generator

The random number generator to use when shuffling the sequence.

Return Value

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

Discussion

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.