Für die Anzahl der Bilder in der DB zu bestimmen nimmst du auch besser
Ansonsten werden ja erst mal alle Daten selektiert, was unnötig lange dauert. Um die höchste ID zu ermitteln nimmst du am besten
Aber wie florian0 schon gesagt hat, geht das nur wenn die ID's durchgängig belegt sind.
ORDER BY RAND() kannte ich gar nicht, hört sich aber gut an
Sollte es damit zu Problemen kommen, kannst du dir auch erst mit count(*) die Anzahl der Einträge bestimmen lassen, dann ein Offset zwischen 0 und count(*) - 1 nehmen und folgendes Konstrukt benutzen: