How to give a variable rotation, scale or location offset to dupligroups objects?
Yes, this is called a driver.
You can evaluate a python expressions by pre-pending your input with a #. There are a number of modules pre imported for convenience, use noise.random() to get a random floating-point number, e.g. #noise.random() * 5