1. A method for generating a fingerprint for a media file, the method executed by at least one computer system and comprising: creating by the at least one computer system, a plurality of randomized versions of the media file, each randomized version of the media file altered to a random extent with respect to an attribute of the media file; generating, in a memory of the at least one computer system, a histogram from the plurality of randomized versions of the media file, the histogram having a plurality of bins each associated with a different feature of the media file, and each bin storing a count of the randomized versions of the media file that have the feature associated with the bin, wherein generating the histogram comprises: creating the plurality of bins in the memory of the at least one computer system, wherein each of the plurality of bins is associated with (1) a particular hash function included in a set of hash functions; and (2) a particular output value for the particular hash function given an input comprising one of the randomized version of the media file; applying the set of hash functions to each randomized version of the media file; and determining the count of the randomized media versions of the media file for each defined bin, each count indicating a number of randomized versions that resulted in the particular output value from the particular hash function; generating the fingerprint for the media file based on the histogram; and storing the fingerprint to a computer-readable storage medium.