Why do some Chinese characters have multiple simplified variants?
Traditional to Simplified is many-to-one, right??
It is almost the case that each Traditional character maps to exactly one Simplified character (possibly itself). This is certainly the mental model that most people have about simplification, and it's not far from the truth.
Alas, there are exceptions.
One of my favorite references on this topic lists out ambiguities in simplification. The &quot;2 to 1&quot; cases at the bottom covers the cases when a single traditional character has multiple simplified characters (Also check out the crazy special case!). In all the 2-to-1 cases, it seems that a semantic distinction (possibly also present in pronunciation) is reflected in the written form of the simplified (but not the traditional). Examples:

徵⇄徵(zhǐ) 征(zhēng) (archaic name for a pentatonic tone vs to conquer)
畫⇄画 划 (to draw vs. to plan)

Two of the four entries in the hanzidb list you provided are accounted for by that Wiki page (as well as several others that the hanzidb list left out). I don't know how the list was created, so I'm speculating a bit more in addressing the others:

锺 - 曾作“鍾”的简化字，后停用。 Previously served as the simplification for 鍾, but it is no longer used. Unrelated to this specific character, there are actually a whole bunch of simplified variants that resulted from a failed 2nd round of simplification. Some of these are really crazy (but most aren't in unicode).
願 -&gt; 愿 (the second one doesn't render for shit, so here's an image 
(source: glyphwiki.org)  .) This is also a weird simplified variant that ultimately became obsolete. I'm surprised it's in unicode at all, to be honest.

Also, another note. There are also what Unihan refers to as &quot;z-variants&quot;, meaning typographic variants of characters. Both the Wiki page and the hanzidb list have (correctly) left these out. They aren't very interesting, but sometimes cause issues when you're doing data processing of CJK text:

說 and 説
莊 and 荘