How to add variation in the results of a neural networks?
I would suggest starting with Generative Adversarial Networks (GAN). They usually are capable of adding some randomness to the output to produce different variants. Moreover, Conditional GANs can generate outcomes regarding the observed condition. Therefore, as you change the condition (as an input to the network) you can get different results.

Some examples of NN for synthetic handwriting generators:


https://github.com/sjvasquez/handwriting-synthesis
http://blog.otoro.net/2015/12/12/handwriting-generation-demo-in-tensorflow/
https://distill.pub/2016/handwriting/