パスワードだったり、適当につける名前だったりでランダム感ある文字が欲しいとき、
キーボードをガチャガチャっと適当に打ってみたり、プログラムで自動で作ったりします
どっちにしても完全にランダムだと読みづらいし、それを手打ちや手書きしないといけないことがあるとどこまで打ったか分かりづらいです

そこでちゃんと読めるランダムな文字列作成ツールがほしいなーとなんとなく思ったので作ってみることに

読みやすくする方法

ランダムだけど読みやすいってなんなのでしょうね

私はメールアドレスを初期のまま使っているので自動生成みたいなランダムの長めの文字列なのですけど、書類に書き写すときすごく大変です
似たような繰り返しがあったらどこまで書いたかわからなくなって見直すことありますし、少し飛んでたり戻ってたり・・・なんてこともあります
z と 2 みたいなのがちゃんと書かないと高確率で間違われます
考えてみたら、書くだけじゃなくてその書類を読んでデータ入力する人も大変ですよね
(お疲れ様です。。。)

とまぁ、そんなわけで手書きで書き写すとしてやりやすければいいんじゃないかな、と

半角小文字だけ

とりあえず数字や大文字は要らないと思うので、半角小文字のみにします
これだけでも読みやすくなったはずです
見た目が似てる z と 2 みたいな文字がなくなったり、声にだすと間違いやすい q と 9 もなくなります
アルファベットだけなので、一つ一つのアルファベットで読まずに英単語みたいにまとめて読めるとさらに読みやすいと言えそうです

ローマ字

ちゃんとした英単語としてしまうと、 1 ワードの文字数が多めで、単語依存部分が多めです
文字数が少ないとあまりランダム度が高くないです
パスワードにも使うなら単語を 2, 3 個くっつけたのとか狙われやすいのであんまり良くなさそうです

なので、ここはローマ字かな?
まず思いついたのはアルファベットでランダムを作るみたいにランダムに並んでるひらがなを用意して、それをローマ字に変換したものにします
これならアルファベットでもローマ字として読めるし、区切りも明確です

・・・だけど、ランダムなひらがなってドラクエの呪文みたいなもの、ですよね
あれも覚えられないし読みづらいです
結局アルファベットで読みづらいを日本語に置き換えただけですから

2 文字ずつにする

もう少し考えていると、完全に意味のない並びじゃなくて、 2 文字ずつで読める並びにすればいいのではと閃きました
ドラクエの呪文みたいなものって、区切りがわからないのと普段の言葉でそんな並びの言葉がないっていうのがあるから読みづらく覚えづらいのだと思うんです

だから 2 文字ずつにして、 2 文字は聞き慣れた並びになるようにします
名前だって 4 文字なら 2 文字ずつになっていてその組み合わせって多いですからね
「政宗」とか「幸村」とか「信長」とか

とりあえず「漢字の読み」であれば、聞き慣れたフレーズのはず
ということで、読みが 2 文字になる漢字もしくは漢字 2 つの熟語を探して、その読みを組み合わせることにします

データ

2 文字の組み合わせにする場合、そのパターンが多くないと同じようなのばかりでランダム度が低くなります
なので、辞書のようなデータが欲しいなーと探していたら・・・形態素解析に使う辞書のデータが使えそうでした

mecab-ipadic というデータをダウンロードします

この中の CSV ファイルに言葉やその読みなどが書かれています
その中から、全部日本語かつ読みのカタカナが 2 文字になってるのだけを取り出します
アルファベットとか数字とかは除外です
それと、なぜか「ツ」が「ッ」(小さいツ)になってるものも多くあったので「ッ」を含むのは除外しました

最後に、取り出した 2 文字の読みをローマ字に変換して完了です
これをテキストファイルに保存しておいて、このデータから指定の文字数でランダム文字列を作ります

取り出したローマ字のパーツはこれ
2000 種類近くあって、中にはぱっと漢字に変換できないようなのも多々あります
もうちょっと取り出す条件厳しくしたほうがよかったのかも・・・
まぁそれでも読めなくはないですし、これを使います

ツール

自動作成ツールはこれです
最低文字数を指定して「つくる」を押すと、 10 種類作られます
気に入ったのを使ってください

(例)
aketsuyukegayochinaotosamizukoo
tagakomenuriyakeryokumirisushima
hishimitaorotanowarakyogebizake
funenomonarogosabonbefunirewaji
nankonhemijibafuemudanohoamijio
bakaanikidushichisudoroubanoyuzu
hihitaebirakibeuwakobugikuhoiraga
mareyogikuzukazoshibochiyozuesena
chidunonoumabunasukafusayanimutsu
wachibukakeimihodaibubayudutoo

一見意味不明なランダム文字列ですが、日本語にして 2 文字ずつになってるとわかれば読みやすく、手書きで書き写すことがあっても完全ランダムよりやりやすいと思います

参考用に本当にアルファベットからランダムに取り出したものです

(例)
wblonayolhnbleehrrcvxoiojoxutd
kelgchlmllzrucdvxhmsgihoukzixv
pvgpxombwuagdcjoqyfqgkbfrmnbiw
cpgtfzvbupkjjewuiqruwxxyzooipl

絶対書いてる途中で何度も今どこだっけってなりますね