func readDirNames(dirname string) ([]string, error) {
	f, err := os.Open(dirname)
	if err != nil {
		return nil, err
	}
	names, err := f.Readdirnames(-1)
	f.Close()
	if err != nil {
		return nil, err
	}
	for i := range names {
		j := rand.Intn(i + 1)
		names[i], names[j] = names[j], names[i]
	}
	return names, nil
}
readDirNames reads the directory named by dirname and returns
a sorted list of directory entries.
package randwalk
import (
	"math/rand"
	"os"
	"path/filepath"
)