Such tools really exist and they're used for testing file systems, so that you have a more realistic "aged" layout on a freshly created test file systems.
We also have memory fragmenters to do the same for memory for the same reasons.
This makes me wonder at the absurdity (yet plausible implementation??!?!) of a tool to test something like ZFS filesystem limits, as they are quite gargantuan in many possible measures.
On CoW systems, file and block deduplication and writes to the middle of a file will do that for you.
Would those tools be primarily proprietary, or do some live in the open-source world too? I’d be interested in the techniques they use to aim for realism there.
Admittedly I haven’t made much of a search, but various search engines and autocorrects seem really convinced that I mean “defragmenter” instead of “fragmenter,” despite myself…