Random photos and random music have different user expectations than what a random number generator provides. If I am listening to a bunch of songs on an MP3 player at random on a long airline flight, I don’t expect to hear the same song again until I have heard all the songs at least once in a random order. If I have desktop wallpaper displaying at random, I expect to see all the wallpaper in my list of wallpapers at least once before I see the same wallpaper again.
So why don’t programmers in the photo display and music playing arenas meet the user expections? I suppose it is significantly easier to write the code using “x = random()” than it is to actually keep track of which photos have been seen or which music has been heard. Or perhaps they are just unaware of the user expectations.