A portfolio should present what you consider to be your best work in various categories. For a programming portfolio, you don't necessarily need to put exclusively games in it, even if you're looking to join a game development team.
For a portfolio that you want to present to a game development group, my suggestion would be to break down the different aspects of what makes up a game and include completed and polished programs that highlight certain aspects.
Suppose you break down the game development pipeline and come up with the following list which shows the skills you want to highlight:
- 3D Graphics
- Physics
- Human Interaction (Gameplay and UI)
- Artificial Intelligence
Take a project for each category and make that aspect shine! Make each one interesting for the end user. Having different programs highlighting different skills shows that you are multidimensional - you're not just a one-trick pony.
Now, there's one more thing a portfolio should do, and that's highlight you! The small projects highlight your skills, but usually it's good to include one major project that shows many skills and, more importantly, your personality. This should be something you're proud of making, and something that you're excited and passionate talking about. Passion is contagious! When you show passion about something, people can't help but take interest.
Hope this helps.