C++1zでは<algorithm>ヘッダに、範囲の中から指定された個数の要素をランダムに抽出するsample()アルゴリズムが定義されます。 #include <iostream> #include <string> #include <iterator> #include <random> #include <algorithm> int main() { const std::string input = "abcdef"; // inputから3要素を無作為抽出する。 // デフォルトの乱数生成器を使用する { std::string result; std::sample(input.begin(), input.end(), std::back_inserter(result), 3); std::cout << result << std::endl; } // inputか