Can't that go negative occasionally too? Was that intentional?
Maybe the f2d function filters negative values but it sounds like a simple float-to-double conversion.
I'm not sure whether it was intentional, but, contrary to the headline, this random value was used to update the fund size daily as shown in the rest of the code. So, a single day for which the fund actually decreases wouldn't matter much. It might even be beneficial to make it look more real.