JSFiddle - React, Tailwind, and code Playground

HTML

<pre id="a"/>

JavaScript

h='1234\n5678\n9ABC\nDEF '.split("");y=18;onkeyup=function(e){d(e.keyCode%5)};d=function(q){if(q==1)for(i=9999;i--;d(0|Math.random()*5));m=h[y];h[y]=h[f=!q&&y>4?y-5:q==2&&y%5<3?y+1:q==3&&y<14?y+5:q==4&&y%5?y-1:y];h[y=f]=m;document.getElementById('a').innerHTML=h.join("")}