I've heard of a solution that uses math.randomseed and the tick function, however I don't fully understand it and I don't know how to implement it into this code. The problem is that it chooses the same result everytime.
local Maps = game.ServerStorage:WaitForChild("Maps"):GetChildren()
function chooseMap()
local randomMap = Maps[math.random(1, #Maps)]:Clone()
randomMap.Parent = workspace.MapHolder
print(randomMap.Name)
end
chooseMap()
If anyone has any better advice on how to code this more properly and more advanced please let me know in your answer or comment.

2 comments
push all the code down by one line then on line one do math.randomseed (tick()) and thats it
Also, I tried it by running it in studio but the same issue arises however with a different result