Started a bounty and someone posted random text as answer. When bounty expires, their response gets the bounty even though it's complete rubbish. How to stop such answers and reject them?
You cannot reject answers but you can aim at preventing them from getting a bounty.
First let’s see how a bounty is awarded and when does it automatically go to an answer. As per the help section on bounties:
The bounty period lasts 7 days. Bounties must have a minimum duration of at least 1 day. After the bounty ends, there is a grace period of 24 hours to manually award the bounty. Simply click the bounty award icon next to each answer to permanently award your bounty to the answerer. (You cannot award a bounty to your own answer.)
If you do not award your bounty within 7 days (plus the grace period), the highest voted answer created after the bounty started with a minimum score of 2 will be awarded half the bounty amount (or the full amount, if the answer is also accepted). If two or more eligible answers have the same score (their scores are tied), the oldest answer is chosen. If there's no answer meeting those criteria, no bounty is awarded to anyone.
If the bounty was started by the question owner, and the question owner accepts an answer posted during the bounty period, and the bounty expires without an explicit award then we assume the bounty owner liked the answer they accepted and award it the full bounty amount at the time of bounty expiration.
You can see that the bounty is awarded in full when you accept an answer and awarded in half when an unaccepted and unawarded answer has 2 or more reputation. If this criterion isn’t met, the bounty isn’t awarded.
So the best way to prevent those answers from getting a bounty is to make sure they don’t get a minimum score of 2. Other than that there’s no way.
As for some answers that can be flagged and deleted by the moderators, it’s best to flag them, eg those in the nature of comments, those lacking citations, etc.