You can do that with standard Linux tooling available on every distribution, see https://man7.org/linux/man-pages/man8/tc.8.html. What you're specifically looking for is `qdisc netem`, it can inject packet loss, reordered packets, duplicate packets, delay and more.