Winner and puppet rarity can be choosen by a malicious miner by manipulating the source of randomness used.
Don't rely on block variables for randomness. A has access to those information and can manipulate those variables to choose the winner and the puppet rarity. See for example this articles:
https://neptunemutual.com/blog/understanding-block-timestamp-manipulation/
https://www.slowmist.com/articles/solidity-security/Common-Vulnerabilities-in-Solidity-Randomness.html
A malicious miner can win all the times and in addition choose an rare puppy.
Manual review
Generate randomness through the use of an oracle. See this article:
https://neptunemutual.com/blog/understanding-block-timestamp-manipulation/#prevention.
Root cause: bad RNG Impact: manipulate winner
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.