Well, if you had access to a database such as MySQL, you could store all the image paths in a table, and in a separate table, list the current image ID and the datetime it was changed.
If the datetime in MySQL is less than the current time minus 1 hour, use a MySQL query like so:
SELECT ImageList.imageid AS newid, ImageList.path AS newpath FROM ImageList,CurrentImage WHERE ImageList.imageid != CurrentImage.imageid ORDER BY RAND()
This would assume you have two tables, 'ImageList' and 'CurrentImage' with columns entitled 'imageid.' You could then take the two values (returned as 'newpath' and 'newid') and store them in the 'CurrentImage' table.
Alternatively, if your webserver is a *nix server, look into using cron jobs. Search this board for 'cron' or 'crontab' for more info. Someone made an excellent post recently about cron jobs...