That's a nice idea. I love it when I have an idea and am excited about it, and I enjoy seeing other people feel that way too
This is definitely possible to implement in Game Maker, and it shouldn't be that complicated. However, since you say you "suck at coding. Like really bad," this might be too hard a challenge for you right now. But, here's how I might implement this:
At the start of the game, create a
ds_list and add to it all the rooms in the pool:
pool = ds_list_create()
ds_list_insert(pool,0,room1)
ds_list_insert(pool,0,room1)
etc.
When the player finishes a room, or they just started a new game, pick a random room from the pool, go to that room, and remove it from the pool:
var chosenindex, chosenroom;
chosenindex = irandom(ds_list_size(pool))
chosenroom = ds_list_find_value(pool, chosenindex)
ds_list_delete(pool, chosenindex)
room_goto(chosenroom)
And when the player finishes a room, you should also check for the win condition, which could be no more rooms in the pool (ds_list_size(pool) == 0), the player completed X amount of rooms, or whatever other win condition. Also, I think it makes sense for the pool list to be a global variable. So yeah, that's how I might implement this. Good luck with your fangame and Game Maker adventures!