Thanks R0J0hound, that is actually a very elegant solution! Although it means that I have to be very clean in my level naming. If I had 20 levels named 1-20 and then decided to add 2 extra ones in the middle, there is a lot of renaming. Still it is a good option to know <img src="smileys/smiley1.gif" border="0" align="middle" />
The way I have been doing it, is to have a dummy level variable sprite with an instance variable called "next level" . The master event sheet then just calls this variable at the end of a level. The advantage of this is that you don't need a separate event sheet for each level and the level order can be changed in the layout view. I tend to store several level specific variables in this dummy sprite and it works quite well.
I still like the idea of shuffling level order in a list which is how I usually do it in Gamemaker, but I can live with this.
Is anyone else frustrated with the default scrollwheel behaviour?