[item for item in list1 if not in list2]
To make it a bit faster(because lookup in set faster than in list):
list2_items = set(list2)
[item for item in list1 if not in list2_items]
or with filter function(you will get a generator object in Python3
filter(lambda item: item not in list2, list1)
Converting list2 to set will also speed up filtering here.
To get more information read about list comprehensions.
Update: it seems that I missed a point about one random value. Well, you still can use list comprehensions, but use random.choice
as was mentioned before:
import random
random.choice([item for item in list1 if not in list2_items])
It will filter choices and then get one randomly. @zeehio response looks like better solution.