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) -> Bound? 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

var first: Bound?

The first element of the collection.

var last: Bound?

The last element of the collection.

subscript(ClosedRange<Bound>.Index) -> Bound

Accesses the element at specified position.

subscript<R>(R) -> Slice<ClosedRange<Bound>>

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

subscript((UnboundedRange_) -> ()) -> Slice<ClosedRange<Bound>>
subscript(Range<ClosedRange<Bound>.Index>) -> Slice<ClosedRange<Bound>>

Accesses a contiguous subrange of the collection’s elements.

func randomElement() -> Bound?

Returns a random element of the collection.