I recently wrote some code which allowed me to shuffle music while still keeping certain songs together (i.e., songs that were part of a common arc, such as Jackson Browne's "The Load-Out" and "Stay," for example). I detailed this code in my blog posts at
http://blogs.msdn.com/vbteam/archive/2007/10/30/let-the-music-play-matt-gertz.aspx and
http://blogs.msdn.com/vbteam/archive/2007/11/13/one-is-the-loneliest-number-matt-gertz.aspx. The code demonstrates usage of the Windows Media Player control and the other objects and interfaces associated with it.
The attached file contains the source code for the jukebox. It was written using VS2008, but I believe that the code itself should build fine using any .NET version of Visual Studio (I haven't tested that, though). However, I
strongly encourage you to read the aforementioned blog posts before diving into the code, since there are steps that you will need to take to prepare your media before this will work.