A) Dixit is the game I currently play a lot with friends and family. The rules are very very simple (can be explained in 1 or 2 minutes) and are as follows (copy/paste of BGG):
"One player is the storyteller for the turn. He looks at the 6 images in his hand. From one of these, he makes up a sentence and says it out loud (without showing the card to the other players).
The other players select amongst their 6 images the one that best matches the sentence made up by the storyteller.
Then, each of them gives their selected card to the storyteller, without showing it to the others. The storyteller shuffles his card with all the received cards. All pictures are shown face up, randomly, and every player has to bet upon what picture was the storyteller's.
If nobody or everybody finds the correct picture, the storyteller scores 0, and each of the other players scores 2. Otherwise the storyteller and whoever found the correct answer scores 3. Players score 1 point for every vote for their own picture.
The game ends when the deck is empty or if someone reaches 30 points,so he wins.Otherwise the greatest total wins the game."
This may sound a bit dull, bit it's a great way to "get in other peoples mind" so to speak. And the artwork of the cards is really beautiful (imho). And another plus-side is that a game doesn't take long (around 30 minutes).
B) No real recommendations, but the 2 player games that are fun to play and work (which means both players have a good chance to win throughout the game) that I have are Puerto Rico and Small World, of which Puero Rico is the strategic one and Small World the more chance/luck based one