すべてのフォーマット定義は、次の一般的なパターンに準拠します。
ランダム数値またはランダム桁数を生成します。
生成された値に後処理が実行され、有効で現実的な値が最終的に生成されます。
たとえば、クレジット・カード番号が有効であるためには、Luhnチェックに合格する必要があります。つまり、クレジット・カード番号の最後の桁はチェックサム桁であり、この桁は常に計算されます。また、最初の数桁は、カード・タイプを示します(MasterCard、Amex、Visaなど)。したがって、クレジット・カードのフォーマット定義は、次のようになります。
ランダムで一意な10桁の数値を生成します。
後処理関数の使用により、既知のカード・タイプ接頭辞を追加して最後の桁を計算することで、前述の値を適切なクレジット・カード番号に変換します。
このフォーマットにより、100億個の異なるクレジット・カード番号を生成できます。