Generic Instance Method


Returns a random element of the collection, using the given generator as a source for randomness.


func randomElement<T>(using generator: inout T) -> Element? where T : RandomNumberGenerator



The random number generator to use when choosing a random element.

Return Value

A random element from the collection. If the collection is empty, the method returns nil.


Call randomElement(using:) to select a random element from an array or another collection when you are using a custom random number generator. This example picks a name at random from an array:

let names = ["Zoey", "Chloe", "Amani", "Amaia"]
let randomName = names.randomElement(using: &myGenerator)!
// randomName == "Amani"

Complexity: O(1) if the collection conforms to RandomAccessCollection; otherwise, O(n), where n is the length of the collection.

See Also

Accessing Elements

subscript(Int) -> Element

Accesses the element at the specified position.

var first: Element?

The first element of the collection.

var last: Element?

The last element of the collection.

subscript(Range<Int>) -> ArraySlice<Element>

Accesses a contiguous subrange of the array’s elements.

subscript(Range<Int>) -> Slice<Array<Element>>

Accesses a contiguous subrange of the collection’s elements.

subscript<R>(R) -> ArraySlice<Element>

Accesses the contiguous subrange of the collection’s elements specified by a range expression.

func randomElement() -> Element?

Returns a random element of the collection.