Con
srand(time(0)) especificas la semilla antes de llamar a
rand() utilizando la hora del sistema (Justo lo que no querías

).-
La semilla la especificas una sola vez y por lo tanto no es relevante el tiempo que te consuma.-
Si la semilla no se especificara, tu serie de números no sería aleatoria sino pseudo-aleatoria por lo que el uso de
srand por lo general es necesario.-
Saludos