Generate a number between 0 and 2x –1, then normalize it: if it is less than x, subtract x, otherwise subtract x and add 1.
\documentclass{article}
\newcommand{\randomdef}[2]{%
\edef#1{%
\expandafter\randomdefnormalize\pdfuniformdeviate\numexpr#2*2\relax\foo{#2}%
}%
}
\def\randomdefnormalize#1\foo#2{%
\ifnum#1<#2
\the\numexpr#1-#2\relax
\else
\the\numexpr#1-#2+1\relax
\fi
}
\begin{document}
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$
\end{document}

The same can of course be done with PGF features.
With xparse
and expl3
; also an interface to expandably get the number in the required interval. Here I use a different strategy: the random number is generated in the interval –x, x –1; if it's positive, I add 1.
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\randomdef}{mm}
{
\wcla_random_def:Nn #1 { #2 }
}
\DeclareExpandableDocumentCommand{\randomget}{m}
{
\wcla_random_get:n { #1 }
}
\cs_new_protected:Nn \wcla_random_def:Nn
{
\cs_set:Npx #1 { \wcla_random_get:n { #2 } }
}
\cs_new:Nn \wcla_random_get:n
{
\__wcla_random_get:f { \fp_eval:n { randint(-#1,#1-1) } }
}
\cs_new:Nn \__wcla_random_get:n
{
\int_compare:nTF { #1 < 0 } { #1 } { \fp_eval:n { #1+1 } }
}
\cs_generate_variant:Nn \__wcla_random_get:n { f }
\ExplSyntaxOff
\begin{document}
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$,\space
\randomdef{\arandom}{5}$\arandom$,\space\randomdef{\arandom}{5}$\arandom$
$\randomget{5}$, $\randomget{5}$, $\randomget{5}$, $\randomget{5}$,
$\randomget{5}$, $\randomget{5}$, $\randomget{5}$, $\randomget{5}$,
$\randomget{5}$, $\randomget{5}$, $\randomget{5}$, $\randomget{5}$,
$\randomget{5}$, $\randomget{5}$, $\randomget{5}$, $\randomget{5}$
\end{document}

\a
which is a core latex command.