You could use the "Wait until sound completes before continuing command" feature for the "Play a Sound" action, so that once one song is finished playing you automatically trigger the next.
Play my song [and stop;]
Set Boolean [PlayMusic] to False
Play sound, 'MySong.mp3' (and wait until it completes)
Begin Text Compare : [{CMD}] Does Not End With 'stop'
Begin Boolean Compare : [PlayMusic] Equals False
Execute command, 'Play Music'
End Condition
End Condition
This command can be duplicated for each song you want to be able to trigger by name
Note that the "This completes all other currently-player sounds" option for the "Play a Sound" action should be enabled, so that if the random music is playing, it stops mid-song, rather than when the loop would come around.
The reason it checks whether "PlayMusic" is false before triggering the command is to prevent the scenario where you trigger another song by name, which would stop the song in another command, leading that command to trigger random play.
Play Music
Set Boolean [PlayMusic] to False
Play sound, 'blank.mp3' (and wait until it completes)
Set Boolean [PlayMusic] to True
Start Loop While : [PlayMusic] Equals True
Play random sound (32 items - suppress repeats)
End Loop
This command is common to all individual song commands, and will play songs in a random order.
The top two actions are optional, but the idea is that you play a blank sound file with the "This completes all other currently-player sounds" option enabled to stop any previous instances of the "Play Music" command if it has been triggered directly. If that doesn't work, you may need to add a slight delay after those two actions to give the other command a chance to pick up on the change(though with the speed loops cycle, this hopefully won't be necessary).
This may come in useful if it randomly plays the same song twice, or you simply wish to skip a song and try for another.
Though, if you really want media player functionality, you're probably best off using an actual media player.