Your code do not behave the way you expect, and you don't understand why !
There is an almost universal solution: Run your code on debugger step by step.
Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[
^]
The downside of this solution:
- It is a DIY, you are the one tracking the problem and finding its roots, which lead to the solution.
The upside of this solution:
- You see your code behaviour, you match it against your expectations.
secondary effects
- Your will be proud of finding bugs yourself.
- Your skills will improve.
You should find pretty quickly what is wrong.
[Update]
You know that the grabbed tiles are empty.
- Check that the bag tiles are not empty.
- Check what append when you grab a tile from the bag.
- Check what append until you display the empty tiles.