i.e. with a non-uniform random distribution:
UPDATE "my_table"
SET "my_column" =
CASE
WHEN random() < 0.40 THEN 'A' -- 40%
WHEN random() < 0.70 THEN 'B' -- 30% (from 0.40 to 0.70)
WHEN random() < 0.85 THEN 'C' -- 15% (from 0.70 to 0.85)
WHEN random() < 0.95 THEN 'D' -- 10% (from 0.85 to 0.95)
ELSE 'E' -- 5% (from 0.95 to 1.00)
END;Side note: this took 51 minutes for 11,765,560 rows!