Thank you so much for giving me credit in your description about where you got the code for the widget! It means a lot.
I recently got a request for a shortcode feature, a horizontal layout, and random order. The problem I ran into is that if I say that I want maxResults=40, the largest amount Google will give back is 40 (actually 39 I think). To get more than that you have to make another request with a startindex (of 39 I believe (it starts at 0)) and a maxResults=40. And you have to repeat that until you get no more results.
I haven't figured out a good way to do that. Maybe you could help. Also, if you start putting multiple widgets on a page, the page can get slow, and the widgets sometimes don't load. Do you know a good way of making it load asynchronously with jquery ajax?