EDIT: I changed the text to be the same as Christian Lindig, and added a couple of typefaces.
Here is a partial solution with the very experimental l3rand package for random numbers. It can be found in the l3trial directory of the LaTeX3 source code (see, e.g., the GitHub mirror).
I've never taken time to learn how to load other fonts, so you should probably customize the list of font changing commands given in \c_anon_fonts_clist.
\documentclass{article} \usepackage{xcolor,graphicx} \usepackage{expl3,l3rand,xparse} \usepackage{bbold} \ExplSyntaxOn \cs_generate_variant:Nn \clist_item:Nn { Nf } \clist_const:Nn \c_anon_fonts_clist { \fontfamily{antt}\selectfont\bfseries, \fontfamily{antt}\selectfont\itshape, \fontfamily{antt}\selectfont, \bfseries, \bbfamily, \itshape, \scshape, \rmfamily } \cs_new_protected:Npn \anon_random_font: { \clist_item:Nf \c_anon_fonts_clist { \rand_range:nn { 0 } { \clist_length:N \c_anon_fonts_clist - 1 } } } \cs_new_protected:Npn \anon_random_box:n #1 { \rotatebox [origin=c] { \rand_range:nn {-15} {15} } { \exp_args:Nx \scalebox { 1 . \rand_range:nn { 0 } { 99 } } { \rand_clean: #1 } } } \cs_new_protected:Npn \anon_one_letter:n #1 { \anon_random_box:n { \int_if_odd:nF { \rand_range:nn {0}{1} } { \colorbox[gray]{ 0.\rand_range:nn {0}{99} } } { \color[gray]{ 0.\rand_range:nn {0}{99} } \anon_random_font: \anon_random_box:n { \scalebox{.8}{#1} \rand_clean: } } } } \DeclareDocumentCommand { \AnonymousLetter } { o m } { \IfValueT {#1} { \rand_seed:n { #1 } } \seq_set_split:Nnn \l_anon_seq { ~ } {#2} \seq_map_inline:Nn \l_anon_seq { \tl_map_function:nN {##1} \anon_one_letter:n \hskip \rand_range:nn { 3 } { 10 } pt \scan_stop: \penalty 2000\scan_stop: \rand_clean: } } \ExplSyntaxOff \begin{document} \raggedright\pagestyle{empty} \AnonymousLetter{Mr. Diomidis Spinellis} \AnonymousLetter{This is a message from an international terrorist group. We have abducted your files and have hidden them away. You must pay \$500 by Sunday afternoon in order to see them again. You will receive further telephone instructions. Do not notify the police or any authorities; you will endager their life.} \AnonymousLetter{Remember: time flies!} \end{document}
\AnonymousLetter loops over word in the input with \seq_map_inline:Nn, and for each letter in the word (\tl_map_function:nN) wraps this letter in a bunch of boxes with random parameters. The function \anon_random_box:n is defined to be a combination of \scalebox and \rotatebox. The method to produce floating point random numbers is somewhat kludgy since I haven't programmed floating point random numbers yet, I glue together the integer and decimal pieces.
The first, optional, argument of \AnonymousLetter is the seed for the RNG. You may want to play around with that, and other parameters to suit your use case. The output I get is:
