It's a term of endearment, an adjective but also a name and been used for hundreds of years. Taking Bonnie from uglier names like Yvonne or Bronwen or from the Spanish word Bonita is silly overkill although feasible I guess.
― Anonymous User 11/23/2008
4
"Bonnie" might be ultimately derived from the Middle French "bon", but the Scots Gaelic word "bàn" ("fair"/"pale") could have played a part, and especially since many English speakers pronounce Bonnie "BAH-nee". Still, it does seem like a mere coincidence and they're probably just sound-alikes.