How to make a random player & mission generator

I’m designing a project where 2 - 6 players will spawn in a room (saferoom) on my level and a computer will give out random objectives to random players. These objectives will require the player to leave the “saferoom” and venture out into my level to complete.

What I need is a in-game computer, that a player can interact with. The player will press a button on the computer e.g Start, then the computer will randomly pick a colour (a colour will be already assigned to each player) and then also randomly pick a objective from a pool of preset objectives.

For Example…

START > ‘BLUE’ Player - Retrieve artifact from the library

I will need the computer to know when a objective has been completed and the player has returned to the “saferoom” so the computer can then display a button to continue onto the next objective, again the next player and mission is picked at random.

Objective Complete - ‘BLUE’ Player return to saferoom > Continue to next objective

An objective that has already been chosen would need to be taken out of the pool, so not to be picked again and the player who has just completed an objective to not picked for the next or their chances of being picked reduced.

Anyone who could help me with this would be greatly appreciated, or if anyone has any links to tutorials/examples that could help me develop something like this…

Thanks

Create a struct or Object called Objective.
Give it all the member variables it needs to determine Locations, Tags of other actors, enums of what actions need to be performed, etc.

In your Actor or object that creates the missions,
Make an array of these structs or objects and call it Objectives.

When the game starts, Populate the array and shuffle it.
Now it’s like a shuffled deck of cards.

To draw a card from the deck, just Get at index 0, assign it to a variable owned by the Player, and Remove at Index 0 (the rest of the array adjusts automatically so the next Objective will be in index 0 now).

Now the player “has” that objective and all the info in it.