Or you prefix your command / script with sleep and a randomlly generated 1h value!
So if it initially runs the script between 0:00 and 1:00 and the script takes 1.5 hours to finish then the next run will be between 1:30 and 2:30 the next day, instead of 0:00 and 1:00.
Shouldn't it be between 1:30 ans 3:30? I'm just nitpicking, of course, that's a nice solution.