'Apply randomization of the given data. Returns a new
data table.
Parameters
data : Orange.data.Table
A data table to be randomized.
Returns
data : Orange.data.Table
Randomized data table.'

def __call__(self, data):

    new_data = data.copy()
    if (self.rand_type & Randomize.RandomizeClasses):
        new_data.Y = self.randomize(new_data.Y)
    if (self.rand_type & Randomize.RandomizeAttributes):
        new_data.X = self.randomize(new_data.X)
    if (self.rand_type & Randomize.RandomizeMetas):
        new_data.metas = self.randomize(new_data.metas)
    return new_data
