Assign Property Value with Message Body
I have done a simple test and it did  not work without a value to add to the property. You need to have your logic like this:


The script only activates the actuator "Message", which send the message.

logic.getCurrentController().activate(logic.getCurrentController().actuators['Message'])


And if you dont set a value e.g "15" to add on the property actuator it will not work. You can't do ( + 0 = ?).



EDIT

I failed to make the random actuator work, but it's very easy with python.

For the mineral object: (You may already done this!).
1. Make a proterty call mineral
2. Add a collision sensor(True level triggering) with property player &lt; and > edit object actuator - end object.

 

For the player object:


Make a proterty call player
Add an always sensor an a python controller
Add a collision sensor(True level triggering) with property mineral to the python controller




Script:

#import needed libraries
from bge import logic
import random

#main function or module.
def main(controller):
    # Param controller = bge.logic.getCurrentController
    #eval if collision sensor activated
    if controller.sensors['Collision'].positive:

        # Gold attr = gold attr  + Random num
        controller.owner['gold'] += random.randint(10, 50)
    print(controller.owner['gold'])


#Game update######################## every frame if always sensor true level triggering

#call function        
main(logic.getCurrentController())




EDIT

to send the message use:

controller.owner.sendMessage('subject', body = str(controller.owner['gold']), to = 'object' )


and retrive it:

if logic.getCurrentController().sensors["Message"].positive:
    gold = logic.getCurrentController().sensors["Message"].bodies[0]


Api sendMessage

Api messageSensor.bodies