I propose here a possible way:
- First I define a macro
\definequestion which takes 6 arguments: the first one is some "label" to identify the question; the second is the question text; the third to sixth ones are the possible answers. The question is put in a t aligned \parbox with a fixed width \questionwidth, which may be adjusted depending on the page and font size.
- The macro
\usequestion{label} printes the corresponding question.
- The macro
\printrandomquestions uses the randomlist package to print the questions in a pseudo-random order. The optional argument is the seed, the mandatory argument must be a comma-separated list of question labels.
For a version with reshuffled answers see below.
\documentclass{article}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{randomlist}
\newlength{\questionwidth}
\setlength{\questionwidth}{6cm}
\makeatletter
\newcommand{\definequestion}[6]{% #1=label; #2: text; #3...#6 multiple choices
\@namedef{question@#1}{%
\parbox[t]{\questionwidth}{%
#2\par\smallskip
\framebox[1.3em]{A}~#3\par
\framebox[1.3em]{B}~#4\par
\framebox[1.3em]{C}~#5\par
\framebox[1.3em]{D}~#6\par
\framebox[1.3em]{E}~\rule{\dimexpr\questionwidth-2em}{0.4pt}
}}
}
\newcommand*{\usequestion}[1]{\@nameuse{question@#1}}
\newcommand*{\printrandomquestions}[2][0]%
{%
\RLsetrandomseed{#1}%
\def\@tempa{}%
\@for\x:=#2\do{%
\edef\y{\noexpand\g@addto@macro\noexpand\@tempa{{\noexpand\@nameuse{question@\x}}}}%
\y
}%
\expandafter\RandomEnumerateList\@tempa
}
\makeatother
\definequestion{v}
{La velocità di $1,00\cdot 10^2$\,m$/$s espressa in km$/$h è:}
{36\,km$/$h}
{360\,km$/$h}
{27,8\,km$/$h}
{$3{,}60\cdot 10^{8}$\,km$/$h.}
\definequestion{A-fm}
{In fisica nucleare si usano l'angstrom (simbolo: $1\,\text{\AA}=10^{-10}$\,m)
e il fermi o femtometro ($1\,\mathrm{fm} = 10^{-15}\,\mathrm{m}$). Qual è la
relazione tra queste due unità di misura?}
{$1\,\text{\AA} = 10^5$\,fm.}
{$1\,\text{\AA} = 10^{-5}$\,fm}
{$1\,\text{\AA} = 10^{-15}$\,fm.}
{$1\,\text{\AA} = 10^{3}$\,fm.}
\definequestion{foo}{Foo}{}{}{}{}
\definequestion{baz}{Baz}{}{}{}{}
\begin{document}
Manually:
\usequestion{A-fm}
\printrandomquestions{v,A-fm,foo,baz}
\printrandomquestions[5]{v,A-fm,foo,baz}
\printrandomquestions[3]{v,A-fm,foo,baz}
\end{document}
Output (in landscape with 3 columns for clarity)

EDIT With the reshuffling of the answers.
\documentclass[landscape]{article}
\usepackage[margin=1cm]{geometry} % for preview
\usepackage{multicol}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{randomlist}
\newlength{\questionwidth}
\setlength{\questionwidth}{6cm}
\makeatletter
\newcommand{\definequestion}[6]{% #1=label; #2: text; #3...#6 multiple choices
\@namedef{question@#1}%
{%
\parbox[t]{\questionwidth}%
{%
\NewList{answers}%
\SetList{answers}{{#3},{#4},{#5},{#6}}% extra grouping to protect commas in arguments
#2\par\smallskip
\count@=65
\ForEachRandomItem{answers}{ans}{\framebox[1.3em]{\char\count@}~\ans\par\advance\count@\@ne}%
\framebox[1.3em]{E}~\rule{\dimexpr\questionwidth-2em}{0.4pt}% last one
}%
}%
}
\newcommand*{\usequestion}[1]{\@nameuse{question@#1}} % provided but not quite useful
\newcommand*{\printrandomquestions}[2][0]%
{%
\RLsetrandomseed{#1}%
\def\@tempa{}%
\@for\x:=#2\do{%
\edef\y{\noexpand\g@addto@macro\noexpand\@tempa{{\noexpand\@nameuse{question@\x}}}}%
\y
}%
\expandafter\RandomEnumerateList\@tempa
}
\makeatother
\definequestion{v}
{La velocità di $1,00\cdot 10^2$\,m$/$s espressa in km$/$h è:}
{36\,km$/$h}
{360\,km$/$h}
{27,8\,km$/$h}
{$3{,}60\cdot 10^{8}$\,km$/$h.}
\definequestion{A-fm}
{In fisica nucleare si usano l'angstrom (simbolo: $1\,\text{\AA}=10^{-10}$\,m)
e il fermi o femtometro ($1\,\mathrm{fm} = 10^{-15}\,\mathrm{m}$). Qual è la
relazione tra queste due unità di misura?}
{$1\,\text{\AA} = 10^5$\,fm.}
{$1\,\text{\AA} = 10^{-5}$\,fm}
{$1\,\text{\AA} = 10^{-15}$\,fm.}
{$1\,\text{\AA} = 10^{3}$\,fm.}
\definequestion{foo}{Foo}{a}{b}{c}{d}
\definequestion{baz}{Baz}{$\alpha$}{$\beta$}{$\gamma$}{$\delta$}
\begin{document}
\begin{multicols}{3}
\printrandomquestions{v,A-fm,foo,baz}
\printrandomquestions[5]{v,A-fm,foo,baz}
\printrandomquestions[3]{v,A-fm,foo,baz}
\end{multicols}
\end{document}

automultiplechoice.sty), so I suppose that is possible use to produce the PDF also in Windows (but scoring it manually without the AMC GUI will be a nightmare) . – Fran Dec 10 '19 at 22:56automultiplechoice.styin your working directory and the first MWE of this answer. You can compile that as usual? You see two test in the PDF?. Then change\onecopy{2}{\insertgroup{code}}to\onecopy{102}{\insertgroup{code}}and compile it again. Have you now more that one hundred different test? – Fran Dec 10 '19 at 23:26