Nice job. Unsolicited, but FYI there are many ways to select filenames that are more "elegant" than multiple if statements.
Check out Select..Case..End Select, as well as Maps and CreateMap. Also, if you see repeated code, it is good practice to find ways to shorten it.
Can the shuffle effect lead to a situation where by chance the customer hears the same item twice in a short time?
(When the playlist is reshuffled, you may want to check that it doesn't start with recently heard songs)