Nice shirleyquirk!
I guess I should just use arrays when performance really matters and I know the size compile time. Would you do it like this? import sequtils import random import times const size = 10_000_000 iterations = 100_000_000 type MyArray = array[size, int] proc main() = var xs: MyArray for i in 0..<size: xs[i] = rand(0..10) var start = cpuTime() for i in 0..<iterations: let x = xs.sample echo "time taken sample: ", cpuTime() - start start = cpuTime() for i in 0..<iterations: let x = xs[rand(size - 1)] echo "time taken rand: ", cpuTime() - start main() Run