%!TEX pdflatex
\documentclass{article}
\usepackage{tikz}
\usepackage{randomlist}
\usepackage{pgffor}
\usepackage{color}
\usepackage{xfp}
\usepackage{siunitx}
\usepackage{xstring}
\begin{document}
\edef\NBBOULESROUGES{\fpeval{randint(1,7)}} % Génération du nombre de boules rouges (entre 1 et 7)
\edef\NBBOULESVERTES{\fpeval{randint(1,9)}} % Génération du nombre de boules vertes (entre 1 et 9)
\edef\NBBOULESBLEUES{\fpeval{randint(1,6)}} % Génération du nombre de boules bleues (entre 1 et 6)
\edef\NBBOULESJAUNES{\fpeval{randint(1,8)}} % Génération du nombre de boules jaunes (entre 1 et 8)
\edef\NBBOULESORANGES{\fpeval{randint(1,10)}} % Génération du nombre de boules oranges (entre 1 et 10)
\edef\NBBOULESROUGESJAUNES{\fpeval{randint(1,5)}} % Génération du nombre de boules rouges/jaunes (entre 1 et 5)
\edef\NBBOULESVERTESORANGES{\fpeval{randint(1,5)}} % Génération du nombre de boules vertes/oranges (entre 1 et 5)
\edef\NBBOULESTOTAL{\fpeval{\NBBOULESROUGES+\NBBOULESVERTES+\NBBOULESBLEUES+\NBBOULESJAUNES+\NBBOULESORANGES+\NBBOULESROUGESJAUNES+\NBBOULESVERTESORANGES}}
\edef\dernierindice{\fpeval{\NBBOULESTOTAL-1}}
\edef\nbcolonnes{6}
\edef\nblignes{\fpeval{trunc(\dernierindice/\nbcolonnes,0)}}
%COULEURS, à tester avec des boules 2-couleurs
\NewList{couleurs}
\SetList{couleurs}{rouge/R,verte/V,bleue/B,jaune/J,orange/O}
\GetRandomItem{couleurs}{choixcouleur}
%URNES
\NewList{urne}
\newcount\nbr
\nbr=\NBBOULESROUGES
\loop
\InsertRandomItem{urne}{red/red}
\advance \nbr -1
\ifnum \nbr>0
\repeat
\newcount\nbv
\nbv=\NBBOULESVERTES
\loop
\InsertRandomItem{urne}{green/green}
\advance \nbv -1
\ifnum \nbv>0
\repeat
\newcount\nbb
\nbb=\NBBOULESBLEUES
\loop
\InsertRandomItem{urne}{blue/blue}
\advance \nbb -1
\ifnum \nbb>0
\repeat
\newcount\nbj
\nbj=\NBBOULESJAUNES
\loop
\InsertRandomItem{urne}{yellow/yellow}
\advance \nbj -1
\ifnum \nbj>0
\repeat
\newcount\nbo
\nbo=\NBBOULESORANGES
\loop
\InsertRandomItem{urne}{orange/orange}
\advance \nbo -1
\ifnum \nbo>0
\repeat
\newcount\nbrj
\nbrj=\NBBOULESROUGESJAUNES
\loop
\InsertRandomItem{urne}{red/yellow}
\advance \nbrj -1
\ifnum \nbrj>0
\repeat
\newcount\nbvo
\nbvo=\NBBOULESVERTESORANGES
\loop
\InsertRandomItem{urne}{green/orange}
\advance \nbvo -1
\ifnum \nbvo>0
\repeat
\ShowList{urne}
\medskip
\begin{center}
\begin{tikzpicture}[scale=0.5]
\foreach \i in {0,1,...,\dernierindice}{%
\edef\q{\fpeval{trunc(\i/\nbcolonnes,0)}}
\edef\r{\fpeval{trunc(\i-\nbcolonnes*\q,0)}}
\edef\couleur{\urne[\i]}
\StrBefore{\couleur}{/}[\couleurgauche]
\StrBehind{\couleur}{/}[\couleurdroite]
\filldraw[\couleurgauche] (\r,{\q+0.45}) coordinate (a\i) arc (90:270:0.45) -- cycle;
\filldraw[\couleurdroite] (a\i) arc (90:-90:0.45) -- cycle;
}
\draw[thick] (-0.6,-0.6) rectangle ({\nbcolonnes-0.4},{\nblignes+0.6}) ;
\end{tikzpicture}
\end{center}
\end{document}