Here's the setup: Players are dealt role cards randomly. Based on those role cards, they start with a specific set of starting cards... for example, the Mechanic might start with the toolbox and the elevator key, while the Researcher starts with the Laptop and the Specimen Jar, and the Security Guard starts with the Pistol and the Locker Key, let's say.

Assuming there is only one of each card, how can these cards be distributed without revealing who took what? Such that no player can somehow look through stacks of remaining cards, or watch who reaches where, and deduce who is playing what role? Are there any really elegant ways to do so?

this is very very interesting!