I am trying to generate BINGO cards where but all the number in the card must be distinct. Here is what I got so far:
\documentclass[a4paper]{article}
\usepackage{xstring}
\usepackage{tikz}
\usetikzlibrary{calc}
\def\NumOfColumns{5}%
\def\Sequence{1/A/1/15, 2/B/16/30, 3/C/31/45, 4/D/46/60, 5/E/61/71}%
\newcommand{\Size}{1.5cm}
\tikzset{Square/.style={
inner sep=0pt,
text width=\Size,
minimum size=\Size,
draw=black,
fill=white,
align=center,
}
}
\begin{document}
\begin{tikzpicture}[draw=black, ultra thick, x=\Size,y=\Size]
\node [Square] at ($(0.5,-0.5)-(0,0)$) {\Huge B};
\node [Square] at ($(0.5,-0.5)-(-1.0,0)$) {\Huge I};
\node [Square] at ($(0.5,-0.5)-(-2.0,0)$) {\Huge N};
\node [Square] at ($(0.5,-0.5)-(-3.0,0)$) {\Huge G};
\node [Square] at ($(0.5,-0.5)-(-4.0,0)$) {\Huge O};
\foreach \row/\rowLetter/\MinNumber/\MaxNumber in \Sequence{%
\foreach \col/\colLetter/\MinNumber/\MaxNumber in \Sequence {%
\pgfmathtruncatemacro{\value}{\col+\NumOfColumns*(\row-1)}
\def\NodeText{\pgfmathparse{random(\MinNumber,\MaxNumber)}\pgfmathresult}
\pgfmathsetmacro{\ColRowProduce}{\col*\row}
\IfEq{\ColRowProduce}{9}{% If is center square
\node [Square] at ($(\col,-\row)-(0.5,0.5)$) {\Huge X};
}{
\node [Square] at ($(\col,-\row)-(0.5,0.5)$) {\Huge \NodeText};
}
}
}
\end{tikzpicture}
\end{document}
In this code a column can have repeated numbers. How can I avoid it?