É possível que você esteja definindo o alias antes de definir $ coding_dir? Da mensagem de erro, parece que é isso que está acontecendo.
O problema é que você está expandindo $ coding_dir no momento em que o alias é definido, não quando é usado.
Se você quiser expandi-lo em tempo de uso, provavelmente deverá defini-lo usando aspas simples, para que ele só expanda $ coding_dir quando for usado.
alias rnd='f $coding_dir/random'
Isso funcionará mesmo que você ainda não tenha definido $ coding_dir e o defina depois:
$ coding_dir=~/Documents/coding
$ rnd
(should chdir to your $HOME/Documents/coding/random)
Você também pode querer adicionar aspas ao seu alias, para que ele lide com nomes de diretórios com espaços:
alias rnd='f "$coding_dir"/random'
E também na sua definição da função f:
function f() { cd "$1" && ls -a ; }