Reimplement 'chooseOneOf()' to try to avoid building a single large data structure to support indexed lookups when just one item is required. It does fall back to building a large data structure though if the number of candidates is huge.