At our December meeting/Holiday party, we have a Grab Bag (at least some of us do, participation is optional). Of course, being CCAT, we do it a little bit differently.
We start with what I call a Korean Grab Bag, because I worked at a place where we did it this way and we had a little guy from Korea so we said it was his way. First, everybody participating draws a number. Each person in turn can either open a wrapped present or take one that someone has already opened and stick that person with the unopened gift. So going last gives you the best choice.
BUT
At CCAT we combine it with Table topics. When you open a gift you give a table topics on how well it suits you. If you want to grab something that is already unwrapped you need to give a table topics how it would be better suited to you, the person who has it gets to give a tabletopic defending if they should get to keep it, then we vote. The vote determines if you get the unwrapped present or if it stays with the person who has it. Whoever doesn't get it opens a gift from the pile.
By custom we have an additional rule that at the end the first person can optionally try to swap gift by doing a table topics.