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()) and then take my random element from c.begin().
However, I might want a random element from a const container, or I might not want the cost of a full shuffle.
Is there a better way?