#define RAND_LOG2 U8( Log2( RAND_MAX + 1 ) )
template<typename T>
T Random(T min, T max) {
if ( min > max ) return 0;
if ( min == max ) return min;
T Range = max - min;
U8 i = 0;
T r = 0;
while( i < sizeof( T ) * 8 ) {
r = ( r << RAND_LOG2 ) | rand( );
i+= RAND_LOG2;
}
return ( r & Range ) + min;
}
Now it shall support everything no matter what size, signedness or unsignedness :3 ( binarynerdshit 4eva
)
Oh, wait, I failed one thing :C
edit: stupid return has to be fixed D: