Choosing ALU functions
But i have no idea what functions are needed/useful to have in an ALU


Neither do we as you didn't specify the application that your ALU should be used in. What is a useful function of a device depends on its use.

The wikipedia article has a nice list of common functionality, i.e.


add
add with carry
subtract
and
or
shift


It also makes a statement on more complex functionality:


  Although an ALU can be designed to perform complex functions, the resulting higher circuit complexity, cost, power consumption and larger size makes this impractical in many cases. Consequently, ALUs are often limited to simple functions 


I think that makes sense and agree.

One example for more complex functionality could be a MAC-unit
Which can be capable of doing a multiplication of two numbers in one cycle, which is useful for some real time applications.

As you can see this is basically a simple arithmetic operation, yet it is not included in the ALU but a dedicated unit.