I am currently doing some simulations where I need bacterial populations at varying levels of identity to each other, so I wrote a tool to do that in the BBMap package. For example, using E.coli:
mutate.sh in=e_coli.fasta out=mutant.fasta id=99 randomreads.sh ref=mutant.fasta out=reads.fq.gz reads=5m length=150 paired adderrors
That will create a mutant version of E.coli with 99% identity to the original, and then generate 5 million simulated read pairs from the new genome. You can repeat this multiple times; each mutant will be different.
See these papers:
Assessing the reliability of eBURST using simulated populations with known ancestry
Hierarchical and Spatially Explicit Clustering of DNA Sequences with BAPS Software
SimBac: simulation of whole bacterial genomes with homologous recombination
Modeling Bacterial Population Growth from Stochastic Single-Cell Dynamics
Also this one:
There are many of them. The choice depends upon what exactly you need.