Suppose that there are three charities (the same argument would work with any number other than three), that those charities currently have endowments of x, y, and z, and that you plan to make contributions of x, y, and z. A truly charitable person will care only about each charity's final endowment, and so will seek to maximize some function
subject to the constraint that x+ y + z = C, where C is the amount you've decided to give to charity.
But assuming that your contributions are small relative to the initial endowments, this quantity is well approximated by
which is maximized by bulleting everything on the charity that corresponds to the largest of the partial derivatives.
(The linear approximation fails if your contributions are large relative to the initial endowments, or if you have sufficient delusions of grandeur to believe that your contributions are large relative to the initial endowments.)
Note that if you have any uncertainty about what the various charities will do with their endowments, the costs of that uncertainty can be built into the definition of the function U. Thus, such uncertainty in no way undermines the main argument.
On the other hand, if you care not about what the charitable organizations receive but about what you give to them (as would be the case, for example, if you give in order to enjoy being thanked), then you will want to maximize some function
In this case, it's unlikely that the solution would be to bullet.