しかのこ問題

ズンドコチェックやゆばーば問題のような感じで、

「しか」「のこ」をランダムに繰り返して「しかのこのこのこ」が出力されたら最後に「こしたんたん」と出力して終了するコードを書きなさい。

という問題を思いついたが、これあまりにズンドコキヨシ問題と構造が同じなのでつまらないな……。

out="";
while(!out.endsWith("しかのこのこのこ")) {

> out += Math.random()<.5 ? "しか" : "のこ";

}
console.log(out + "こしたんたん");

せっかくなのでコードゴルフ。84文字。

f=s=>s.match`かのこのこの`?s+"こしたんたん":f(s+(Math.random()<.5?"しか":"のこ"));console.log(f(""))

しかし頑張って再帰使うよりforのほうが短いっていうね。80文字。どうして……。

for(t='';!t.match`かのこのこの`;)t+=Math.random()<.5?"しか":"のこ";console.log(t+"こしたんたん")