Round up!
A big thanks to enchantedconsole who had sent me the solution quite early but I missed it for some reason … So I’ve simply added ‘r’ to the sin() expression in the map() function and it works (final code here)! 
Thanks to the others too, especially for explaining how to create loops using t=frameCount/maxFrames.
Some of you wrote really detailed answers which I have to study now!
One thing is for sure though, the P5 community rocks :D 
PS. Dave from beesandvombs also send me the the code for the original GIF that had started my quest ;)
PPS. I’ve used to ellipses (fill but noStroke) for those ‘doughnuts’ because using only one ellipse (with noFill but stroke) would have resulted in a jittery animation. Seems like strokes cause jitters?

Mike McDonnell (spirit animal)

sucks being cooler than your time……said the wankers

(Source: mikemcdonnell)

Roller ball