private void populateDeck() {
        for (int i = 0; i < 10; i++) {
            deck.add(new Card(CardType.D25));
            deck.add(new Card(CardType.D50));
            deck.add(new Card(CardType.D75));
            deck.add(new Card(CardType.D100));
        }
        
        deck.add(new Card(CardType.D100));
        deck.add(new Card(CardType.D100));
        
        for (int i = 0; i < 4; i++) {
            deck.add(new Card(CardType.D200));
        }
        
        for (int i = 0; i < 3; i++) {
            deck.add(new Card(CardType.ROAD_SERVICE));
        }
        
        for (int i = 0; i < 6; i++) {
            deck.add(new Card(CardType.REPAIR));
            deck.add(new Card(CardType.SPARE));
            deck.add(new Card(CardType.END_LIMIT));
            deck.add(new Card(CardType.GAS));
            deck.add(new Card(CardType.ROLL));
        }
        
        for (int i = 0; i < 8; i++) {
            deck.add(new Card(CardType.ROLL));
        }
        
        for (int i = 0; i < 3; i++) {
            deck.add(new Card(CardType.ACCIDENT));
            deck.add(new Card(CardType.FLAT));
            deck.add(new Card(CardType.EMPTY));
            deck.add(new Card(CardType.LIMIT));
            deck.add(new Card(CardType.STOP));
        }
        
        deck.add(new Card(CardType.STOP));
        deck.add(new Card(CardType.STOP));
        deck.add(new Card(CardType.LIMIT));
        
        deck.add(new Card(CardType.DRIVING_ACE));
        deck.add(new Card(CardType.EXTRA_TANK));
        deck.add(new Card(CardType.PUNCTURE_PROOF));
        deck.add(new Card(CardType.RIGHT_OF_WAY));
        
        shuffleDeck();
    }