#include <iostream>
#include <vector>
#include <random>
#include <algorithm>

std::vector<std::size_t> MakeRandom(std::size_t N){
	std::vector<std::size_t> vec(N);
	std::size_t i = 0;

	for (auto& o : vec) o = i++;

	std::random_device rd;
	std::mt19937 mt(rd());

	std::shuffle(vec.begin(), vec.end(), mt);

	return vec;

}

std::vector<std::size_t> MakeHoge(std::size_t N, std::size_t Drop = 2, bool IsShowArray = false){

	auto vec = MakeRandom(N);
	std::vector<std::size_t> ret;
	int C = 0;
	bool IsFind = false;
	std::size_t j = 0;

	for (std::size_t i = 0; i < Drop; i++){
		vec.pop_back();
	}
	if (IsShowArray == true){
		for (std::size_t i = 0; i < vec.size(); i++){
			std::cout << vec[i] << ',';
		}
		std::cout << std::endl;
	}
	for (std::size_t i = 0; i < N; i++)
	{
		IsFind = true;
		for (std::size_t j = 0; j < vec.size(); j++){
			
			if (vec[j] == i){
				IsFind = false;
				break;
			}
		}	
		if (IsFind == true){
			ret.push_back(i);
			if (ret.size() == Drop) break;
		}
	}


	return ret;
}
int main(){
	auto R = MakeHoge(16, 2, true);

	std::cout << "I find Number of (";
	for (auto& o : R) std::cout << o << ',';
	std::cout << ")";

	return  0;
}