#pragma once #include class Random { public: static Random& get(); Random(); template T int_range(T start, T end) { std::uniform_int_distribution distribute(start, end); return distribute(randGen); } template T real_range(T start, T end) { std::uniform_real_distribution distribute(start, end); return distribute(randGen); } std::string alphanumeric_str(size_t len); std::mt19937_64 randGen; private: static Random global; };