I would like a driver that gives different result when duplicating the object but stays constant on frame update, transformations, etc...
noise.random gets updated on frame change. I thought about using the object Id (bpy.data.objects[x].id_data.as_pointer()) but it stays on objects[x] on the duplicates instead of using the id of the duplicated objects, making all duplicates the same.
I couldn't find the path to that id in the Add Variable panel.
If possible the solution should be a simple expression. Best would be a simple RNA path.

If the objects don't move, can you try using their location as a random seed?
– Mike Pan Mar 20 '14 at 18:46