aja...con rango te refieres a la longitud o a un rango por ejemplo de o a 100...
Mira este code y dime....que te parece:
@echo off
REM Random Number Generator
REM Coded by SmartGenius
set def=%1
if "%def%"=="" goto :syntax
if %def%==/? goto :syntax
if %def%==/h goto :syntax
set /a t=%def%*1
if %t% LEQ 0 goto :syntax
if %def% GTR 9 goto :syntax
:random
set /a rdn=((((%random%*%random%*%random%)+%random%)*%time:~-2%)+(%random%*%random%)*%time:~-2%)>nul
call set nr=%%rdn:~-%def%%% > nul
echo %nr%
goto :eof
:syntax
echo.
echo Modo de Uso: %~0 N
echo %~0 [/? ^| /h] - Ayuda
echo.
echo Donde N representa la Longitud en Digitos del Numero Aleatorio.
echo Se generaran Numeros Aleatorios de Maximo 9 Digitos de Longitud.
goto :eof
Lo he tratado de mejorar para convertirlo en un comando mas que guardemos en system32...
por ahora llevo este codigo..aunque puede ser modificado obvio...

Se guarda como RANDOM.BAT en system32 y ya seria un comando que recibe como parametro la longitud en digitos que debe tener el numero aleatorio generado....(por ahora el maximo es 9 )...
Espero sea de utilidad...o si hay ideas..pues...aporten.. xD
Saludos.