Very cool. I really love fish but sometimes find it very annoying to translate random posix snippets from the web.
The trick is to enter bash from fish, run your command, and then call fish again.
(fish)$ bash
(fish>bash)$ source ./random.sh
(fish>bash)$ fish
(fish>bash>fish)$
Or just simply:
(fish)$ bash -c ./random.sh
That doesn't give you the env vars that the script might have set.
You can use fenv or bass for that. They run a snippet or script of bash in bash, then import all the environment changes for you