%!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}