一つ目のプログラムは 「条件を満たす10桁の数を全数列挙し、その中からランダムで一つ選ぶ」 という、時間とメモリをどぶに捨てるが如く無駄遣いするアルゴリズムです。 二つ目は 「とりあえず 10 桁の乱数を発生させてみて、条件に合致するまで繰り返す」 というものです。ボゴソート由来です。ボゴソートは(時間がかかる事を除いては)本当に有用なアルゴリズムです。 例えば、どんな仕様のプログラムでも作ることができるし(もちろんハード的に可能なもの)、どんな画像でも作ることができるし、どんな曲だって作れます。