I'm writing a function to append 5-10 bytes (count is random) at the beginning of a byte array, and 5-10 random bytes at the end:func padWithRandomBytes(b []byte) []byte {    startBytes := make([]byte, 10-rand.Intn(5))    endBytes := make([]byte, 10-rand.Intn(5))    newSlice := make([]byte, len(startBytes)+len(b)+len(endBytes))    copy(newSlice[:len(startBytes)], startBytes)    copy(newSlice[len(startBytes):len(startBytes)+len(b)], b)    copy(newSlice[len(startBytes)+len(b):], endBytes)    return newSlice}This feels pretty inefficient. Is there a more intuitive way to write this in Go?
Pad a function with random bytes
random;go
For example,package mainimport (    fmt    math/rand    time)func padWithRandomBytes(b []byte) []byte {    s := 5 + rand.Intn(5+1)    e := 5 + rand.Intn(5+1)    r := make([]byte, s+len(b)+e)    copy(r[s:], b)    return r}func main() {    rand.Seed(time.Now().UnixNano())    b := []byte{1, 2, 3}    fmt.Println(len(b), b)    r := padWithRandomBytes(b)    fmt.Println(len(r), r)}Output (random):3 [1 2 3]20 [0 0 0 0 0 0 0 0 1 2 3 0 0 0 0 0 0 0 0 0]3 [1 2 3]15 [0 0 0 0 0 0 1 2 3 0 0 0 0 0 0]