OK I think I need to help more. Just fill an array with all the card values and use a shuffling algorithm. This meets all the requirements because by filling an array with all the possibilities you ensure that each card is represented once, and with the shuffling algorithm, you give them random placement. What you do with the constructor depends on your expectations. What is the initial state of a card deck? Write out your answer in the constructor.