You can utilize the System and System.IO namespace for all that fairly easily.
var files = Directory.GetFiles("directory path");
var playlist = new string[files.Length];
At that point, you'll have two arrays. The files array will contain the full path for every file in the directory you specified, and playlist will be a string array with the same size as the files array.
To get a random file and assign it to the playlist array, you can use the Random class in the System namespace to get a random number between a range.
var random = new Random();
int index = random.Next(0, playlist.Length);
You can use a bunch of logical statements to make sure that you don't copy over one file more than once, and that the space you're copying it to isn't already taken up by a file. But you had the idea idea. Transferring all the paths would look something like this
playlist[RandomPlaylistIndex] = files[RandomFileIndex];
with the lefthand side being the receiving end. That's pretty much the gist of it, anyhow. I can post more code if you're still stuck.