構想としては大体こんな感じを考えてます。

コンストラクタ
Dealer(Object[] card) cardで表されたカード列を持ったディーラーを生成

追加メソッド
Object deal() 一枚カードを引く。
void shuffle() シャッフルする。残り枚数をクリア。
void sort() ソートする。(生成時のならびにもどす) 残り枚数をクリア。
int talon() 残り枚数を返す。

という感じで、シャッフルまたはソートしたらもう一度一枚目から
引けるようにする・・・と。
これならわりとなんにでも使えるんじゃないかな・・・と。