I think that tonto is the perfect translation for silly. It all depends on the way it is pronounced (I have already had lots of conversations about this word with speakers of other languages).
Think about these situations:
- A person comes to you with an angry face and says to you in a harsh way:
¿Pero tú estás tonto?
- Your girlfriend comes to you with a smiling face and says in a playful way:
¡Anda ya, tonto!
Both situations are completely different, the way the word is uttered is completely different, but the word is the same and has completely different meanings and connotations.
Nonetheless, I understand that it may be a dangerous word if you do not know how to use it. If you want to make sure that you use the word in a playful way, use a diminutive variant. I have heard the word used this way a lot in episodes of Paw Patrol (La Patrulla Canina in Spain, and yes, I also have a small kid):
¡Anda ya, tontito!
¡Pero no me seas tontito!