A function call is not an object – when you call a function, it returns the raw value as if you were simply assigning any value to a variable (there will be no trace that any function was called).
OP, the following code will work, but math.random is only being called once at the beginning of runtime. Assuming you want a random amount of drops every time the object is collected, I would suggest having a minimum value and a maximum value, and then calling math.random when the object is collected. For example: