Doors is procedurally generated, much like how Minecraft “makes up” the world as you travel through it.
The way I would do this is I would build ten or so unique rooms (or however many you want) each with an invisible part at each entrance. Store all the rooms except the entrance inside server storage and once a player enters the entrance, randomly select one of the rooms from server storage and link the CFrame of the invisible part of the random room to the one of the entrance. You can do this for all of the rooms at once or you can just load the next room as soon as a player enters the previous one. I would use the zone plugin for this.
This is just a very general and non-detailed way of how I would go about doing that. Obviously there are logistics like linking the room’s whole model to the invisible part which would have to be figured out, as well as loading everything in a way that is smooth and natural.