What is a good way to get a [pseudo-]random element from an STL range?
The best I can come up with is to do std::random_shuffle(c.begin(), c.end()) an
std::random_shuffle(c.begin(), c.end())
You can use 0~1 random function to generate a float number for every element in the container as its score. And then select the one with highest score.