The query below generates a line of DNA sequence
prepare dna_length(int) as with t1 as (select chr(65) as s union select chr(67) union select chr(71) union select
Something like this?
select x, string_agg((array['A', 'C', 'G', 'T'])[1 + floor(random() * 4)], '') from generate_series(1, 20, 1) gsn(n) cross join generate_series(1, 10, 1) gsx(x) group by x