They want to accept bitcoin donation on website. They demand a system that generates new wallets address every time they accept donation.
Overall, they wanna accept and store bitcoin donations securely and anonymously** online. What is the best solution.
I assume the reason why your clients want to "accept bitcoin anonymously" is because their donors wish to donate in a way such that their identity is not linked to the donations.
If your clients receive donations from donors, there is the potential that your client will spent the coin in a way that will link all of the donations together, which is the equivalent of using a single donation address.
There are various ways of accepting bitcoin in a way such that a new address is generated for each potential transaction. Others in this thread have mentioned some implementations, and I will not suggest one above what has already been discussed.
However the above is not going to solve your underlying problem. The ideal solution to what I believe is your client's problem is that your client's donors need to be able to
send bitcoin in a way such that the transaction cannot be traced back to their identities. A good first step to doing this is to not reuse addresses, not publish any addresses that belong to them, and to use coin control.