Per togliere la prima e l'ultima, utilizza il metodo substring (vedi le API), mentre per la punteggiatura non ti resta che scorrere la stringa carattere per carattere ed eliminare i caratteri che non ti piacciono.
Per queste operazioni però sarebbe meglio StringBuilder perché è mutabile, gli oggetti String sono immutabili ed ogni volta che fai qualche modifica ad una String in realtà ne crea una nuova.

Detto questo, che problemi hai incontrato con shuffle?