\usepackage[first=1,last=50,counter=randomcounterfornoisyword]{lcg}
\usepackage{ifthen}

% \noisyword{canal,canard,2} has a 1/2 chance of write "canard" instead of "canal "
% \noisyword{canal,canard} has a 1/50 chance of write "canard" instead of "canal "
\newcommand{\noisyword}[3]{
    \ifthenelse{ \equal{#3}{} }
        {\chgrand[last=50]}
        {\chgrand[last=#3]}
    \phantom{\rand\arabic{randomcounterfornoisyword}}
    \ifthenelse{ \equal{\arabic{randomcounterfornoisyword}}{1} }
        {#2}
        {#1}
}

\newcommand{\canal}[0]{
    \noisyword{canal}{canard}{20}
}
\newcommand{\agregator}[0]{
    \noisyword{agregator}{aligator}{20}
}