О подводных камнях. По идее, можно использовать функцию RND(). Но у нас тут были тёрки относительно качества её работы. У неё откровенно хреновое распределение (видимо, привязана тупо ко времени). Тем более, если требуется заполнить достаточно большой массив переменных случайными значениями, то, кроме плохого распределения, появляется проблема из-за врождённой тормознутости циклов в ММВ.
Поэтому, если нужно сгенерировать одно-два-три случайных значения в разные промежутки времени, вполне подойдёт RND(), во всех остальных случаях лучше заполнить листбокс и сделать перемешивание, далее извлекать по одному пункту.