%!TEX pdflatex

\documentclass[french]{article}
\usepackage{babel}
\usepackage[margin=1.5cm]{geometry}
\usepackage{xparse}

\ExplSyntaxOn
\seq_new:N \l__test_randint_seq
\NewDocumentCommand{\randomvalues}{ s O{,} m m m }
  {
    \seq_clear:N \l__test_randint_seq
    \int_step_inline:nn {#3}
      { \seq_put_right:Nx \l__test_randint_seq { \int_rand:nn { #4 } { #5 } } }
    \IfBooleanTF{#1}
        {}
        {
    \seq_sort:Nn \l__test_randint_seq
      {
        \int_compare:nNnTF { ##1 } < { ##2 }
          { \sort_return_same: }
          { \sort_return_swapped: }
      }
    }
    \seq_use:Nn \l__test_randint_seq {#2}
  }
\ExplSyntaxOff

\begin{document}

\part*{Liste d'entiers aléatoires}

5 entiers aléatoires entre 10 et 100, ordonnés, liste séparée par une virgule :

\smallskip

\hspace{5mm}\verb|\randomvalues{5}{10}{100}|

\smallskip

\hspace{5mm}\randomvalues{5}{10}{100}

\medskip

20 entiers aléatoires entre 10 et 100, liste séparée par un / :

\smallskip

\hspace{5mm}\verb|\randomvalues*[/]{20}{10}{100}|

\smallskip

\hspace{5mm}\randomvalues*[/]{20}{10}{100}

\medskip

10 entiers aléatoires entre 0 et 250, ordonnés, liste séparée par ~§~ : 

\smallskip

\hspace{5mm}\verb|\randomvalues[ § ]{10}{0}{250}|

\smallskip

\hspace{5mm}\randomvalues[ § ]{10}{0}{250}

\end{document}