\documentclass{standalone}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
vardef dice(expr pip_count, pip_color) =
 save d,r,p, ul, ur, lr, ll; r = 1/8;
 path d; d = for i=0 upto 3:
    quartercircle scaled 3 shifted (15,15) rotated 90i --
 endfor cycle;
 picture p; p = image(
    fill fullcircle scaled 6 withcolor pip_color;
    draw fullcircle scaled 6;
 );
 pair ul, ur, ll, lr;
 ul = 1/5[ulcorner d, lrcorner d]; ur = 1/5[urcorner d, llcorner d];
 ll = 4/5[urcorner d, llcorner d]; lr = 4/5[ulcorner d, lrcorner d];
 image(
    fill d withcolor (1, 0.96, 0.8); draw d;
    if odd(pip_count):
       draw p shifted center d;
    fi;
    if pip_count > 1:
       draw p shifted ul; draw p shifted lr;
    fi;
    if pip_count > 3:
       draw p shifted ur; draw p shifted ll;
    fi;
    if pip_count = 6:
       draw p shifted 1/2[ul,ll]; draw p shifted 1/2[ur,lr];
    fi
 )
enddef;
beginfig(1);
for i=0 upto 4:
 draw dice(1+floor uniformdeviate 6, if odd i: red else: blue fi)
   rotated (2 normaldeviate) shifted (36i,0);
endfor
endfig;
\end{mplibcode}
\end{document}