9 #define RND_U32 uint32_t
10 #define RND_U64 uint64_t
22 T choice(T* array, std::size_t count) {
23 return array[int_in_range(0, count - 1)];
27 T choice(
const std::vector<T>& choices) {
28 return this->choice<T>((T*) &choices[0], choices.size());
32 void shuffle(T* array, std::size_t count);
35 void shuffle(std::vector<T>& choices);
38 std::vector<T> shuffled(
const std::vector<T>& choices);
40 float float_in_range(
float lower,
float upper);
41 int32_t int_in_range(int32_t lower, int32_t upper);