Quote Originally Posted by Graham View Post
random_shuffle() needs a random access iterator...
Yes, of course

How about the data in a std::list and calling 'next permutation' a random number of times. A bit clunky I know, but maybe worth considering.