不変オブジェクトがよく分からないけど、多分std::random_shuffleを参考にするといいよ