Best practices for instantiating and destroying

Options
I have certain items that will be instantiated and others destroyed at the start of the game(to randomize a map).

What's the best way to do this so that it gets done once and then it will be the same for all players in that room. I have photon view on the objects, but where should I be running the code, by the client master? What happens if right before the code was supposed to run the client master leaves in that case? Is there a way to run it server side for the room before the game starts?


Unrelated but, is there a way to retrieve a list of all players in a game and compare names to the player that is trying to join a room. I don't want to allow players with the same player name(using playfab player name for this) to be able to play at the same time.