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) -> [Element] where T : RandomNumberGenerator

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 an Array's Elements

func sort()

Sorts the collection in place.

func sort(by: (Element, Element) -> Bool)

Sorts the collection in place, using the given predicate as the comparison between elements.

func sorted() -> [Element]

Returns the elements of the sequence, sorted.

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

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

func reverse()

Reverses the elements of the collection in place.

func reversed() -> ReversedCollection<Array<Element>>

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

func shuffle()

Shuffles the collection in place.

func shuffle<T>(using: inout T)

Shuffles the collection in place, using the given generator as a source for randomness.

func shuffled() -> [Element]

Returns the elements of the sequence, shuffled.

func partition(by: (Element) -> Bool) -> Int

Reorders the elements of the collection such that all the elements that match the given predicate are after all the elements that don’t match.

func swapAt(Int, Int)

Exchanges the values at the specified indices of the collection.