diff --git a/src/core/math/Random.h b/src/core/math/Random.h
index 517c4d4bef7196779b85507a7646769c6fc2b249..dd4a4bff7c492eb309f880061fbb07040c3f9964 100644
--- a/src/core/math/Random.h
+++ b/src/core/math/Random.h
@@ -49,8 +49,25 @@ void seedRandomGenerator( const std::mt19937::result_type & seed ); // std::mt19
 */
 //**********************************************************************************************************************
 template< typename INT >
-INT intRandom( const INT min = std::numeric_limits<INT>::min(), const INT max = std::numeric_limits<INT>::max(),
-               std::mt19937 & generator = internal::getGenerator() )
+INT intRandom()
+{
+   return intRandom( std::numeric_limits<INT>::min(), std::numeric_limits<INT>::max() );
+}
+
+template< typename INT >
+INT intRandom( const INT min )
+{
+   return intRandom( min, std::numeric_limits<INT>::max(), internal::getGenerator() );
+}
+
+template< typename INT >
+INT intRandom( const INT min, const INT max )
+{
+   return intRandom( min, max, internal::getGenerator() );
+}
+
+template< typename INT >
+INT intRandom( const INT min, const INT max, std::mt19937 & generator )
 {
    static_assert_int_t< INT >();
    static_assert(sizeof(INT) > sizeof(char), "cannot use char");