Implement the Zundoko Kiyoshi function Background

The Zundoko Kiyoshi function originates from this tweet by kumiromilk. Translated from Japanese, it reads roughly as follows:


  The test for my Java lecture had a problem that said "Implement and describe your own function". I made it continuously output either "zun" or "doko" randomly; if the sequence "zun", "zun", "zun", "zun", "doko" appears, it outputs "ki-yo-shi!" and terminates. Then I got full marks and earned a unit.


This is in reference to Kiyoshi Hikawa's song Kiyoshi no Zundoko Bushi: when he sings the aforementioned line, the crowd cheers "ki-yo-shi!" in response.

Task

Write a program or function that takes no input and replicates the behavior outlined in the tweet:


Repeatedly output either zun or doko, choosing uniformly randomly each time.
If the sequence ["zun", "zun", "zun", "zun", "doko"] appears in the output, output ki-yo-shi! and halt.


Example output:

doko
zun
zun
doko
doko
zun
zun
zun
zun
zun
doko
ki-yo-shi!


Rules


This is code-golf, so shortest answer in bytes wins.
Your output can be a list of strings, or each string printed with some delimiter.
Your output has to be non-deterministic.
JavaScript (ES6), 72 bytes
f=x=&gt;x%17^2?['doko ','zun '][j=Math.random()*2|0]+f(x&lt;&lt;7|j):'ki-yo-shi!'

Try it online!
How?
We keep track of the last 5 words in a 32-bit integer stored in \$x\$ (which is initially undefined). At each iteration, we left-shift it by 7 positions and set the LSB to \$0\$ for doko or \$1\$ for zun.
The sequence zun, zun, zun, zun, doko results in:
x = 10000001000000100000010000000
or \$270549120\$ in decimal, which is the only value for which we have \$x\equiv 2\pmod{17}\$, as shown in this table. This is our halt condition.