#pragma once

#include <random>

namespace td {
namespace utils {

template<typename NumberType>
NumberType GetRandomInt(NumberType min, NumberType max) {
	std::random_device randomDevice;
	std::mt19937 generator(randomDevice());
	std::uniform_int_distribution<NumberType> distrib(min, max);
	return distrib(generator);
}

template<typename NumberType>
NumberType GetRandomReal(NumberType min, NumberType max) {
	std::random_device randomDevice;
	std::mt19937 generator(randomDevice());
	std::uniform_real_distribution<NumberType> distrib(min, max);
	return distrib(generator);
}

} // namespace utils
} // namespace td
