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