PayPal donation buttons don't require anything unique except an email address that will be receiving the payment. You could use an email field for them to supply their PayPal email address then just substitute that email address into a Custom HTML field where you've supplied the HTML for the donate button. Example as follows.
Code:
[cb:if cb_paypalemail!=""]
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="business" value="[cb_paypalemail]">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="bn" value="PP-DonationsBF:btn_donateCC_LG.gif:NonHostedGuest">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
[/cb:if]
With the field cb_paypalemail being the PayPal email address it'll first check that the field isn't empty and if it isn't it'll add it as the business in the form so it can be submitted as part of the button. The button HTML is just generic PayPal donate button generated at PayPal so you can customize it however you like.
All of the above just requires core CB 2.x. So I recommend simply trying it out and seeing if it fits your need. The only cost being time.