How to add randomness or variability to Action Strip scale
There isn't a way to set key frames for that value, so as a last resort I wrote a little python script.  Copy this into the text editor, and click "run script". Be sure to set the MIN and MAX values, and put the name of the action in the ACTION_NAME variable.  The script will automatically choose a new random value every time you change frame.  Setting the STEP size will make it wait n number of frames before choosing a new value.

import bpy
from random import random

# Set your min and max values here
MAX = 9
MIN = 3
ACTION_NAME = "DragonflyAction"

# Set step size.  Step size of 1 chooses a new value every frame
STEP = 5


def my_handler(scene):

    if scene.frame_current % STEP == 0:
        obj = bpy.context.selected_objects[0]
        obj.animation_data.nla_tracks["NlaTrack"].strips[ACTION_NAME].scale = (random() * (MAX - MIN)) + MIN

bpy.app.handlers.frame_change_post.append(my_handler)


Here's a screenshot: